目录
一.Docker安装
(1)安装依赖
(2)安装Docker
(3)启动Docker服务
(4)系统配置
(5)镜像加速配置
(6)验证安装
二.编写Dockerfile文件
四.docker compose手动安装命令
五.服务器部署
本文章教学参考下面链接地址:Docker 构建镜像并搭建私人镜像仓库教程_docker 配置镜像仓库-CSDN博客
以及B站教学视频:
B站微服务部署教学视频
一.Docker安装
# Docker 安装与配置指南 (CentOS)## 1. 系统准备# 更新系统软件包
sudo yum update -y# 移除旧版本Docker及相关组件
yum remove -y docker docker-client docker-client-latest docker-ce-cli docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine podman runc# 清理缓存并重建
yum clean all
yum makecache
(1)安装依赖
# 安装必要依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)安装Docker
# 添加Docker仓库(阿里云镜像)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装指定版本Docker
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io
(3)启动Docker服务
# 启动Docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker# 验证安装
docker --version
(4)系统配置
# 安装wget工具
yum install -y wget# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 禁用SELinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
(5)镜像加速配置
# 创建配置目录
mkdir -p /etc/docker# 配置镜像加速器
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com","https://mirrors.tuna.tsinghua.edu.cn","http://mirrors.sohu.com","https://ustc-edu-cn.mirror.aliyuncs.com","https://2yzmpomi.mirror.aliyuncs.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.awsl9527.cn","https://do.nark.eu.org","https://dc.j8.work","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://docker.1panel.live/","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud","http://hub.urlsa.us.kg","http://hub.haod.eu.org","http://hub.chxza.eu.org","http://ccoc.eu.org"],"dns": ["8.8.8.8", "8.8.4.4"]
}
EOF# 重新加载配置并重启Docker
systemctl daemon-reload
systemctl restart docker
(6)验证安装
# 运行测试容器
sudo docker run hello-world# 查看Docker系统信息
docker info# 查看Docker服务状态
sudo systemctl status docker
命令 | 说明 | 文档地址 |
---|---|---|
docker pull | 拉取镜像 | docker pull |
docker push | 推送镜像到DockerRegistry | docker push |
docker images | 查看本地镜像 | docker images |
docker rmi | 删除本地镜像 | docker rmi |
docker run | 创建并运行容器(不能重复创建) | docker run |
docker stop | 停止指定容器 | docker stop |
docker start | 启动指定容器 | docker start |
docker restart | 重新启动容器 | docker restart |
docker rm | 删除指定容器 | docs.docker.com |
docker ps | 查看容器 | docker ps |
docker logs | 查看容器运行日志 | docker logs |
docker exec | 进入容器 | docker exec |
docker save | 保存镜像到本地压缩文件 | docker save |
docker load | 加载本地压缩文件到镜像 | docker load |
docker inspect | 查看容器详细信息 | docker inspect |
二.编写Dockerfile文件
Dockerfile 是一个文本文件,包含了一系列用于构建 Docker 镜像的指令。它允许开发者定义应用程序运行所需的环境、依赖项和配置,从而实现应用程序的容器化。
FROM eclipse-temurin:8-jre## 创建目录,并使用它作为工作目录
RUN mkdir -p /yudao-gateway
WORKDIR /yudao-gateway
## 将后端项目的 Jar 文件,复制到镜像中
COPY ./target/yudao-gateway.jar app.jar## 设置 TZ 时区
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx512m"## 暴露后端项目的 48080 端口
EXPOSE 48080## 启动后端项目
CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar app.jar
三.编写docker compose文件
四.docker compose手动安装命令
首先访问下面链接去下载docker-compose文件:https://github.com/docker/compose/releases
之后找到下面这个文件下载即可:
如果最新版没有这个安装文件,就往下一版找,直到找到这个文件即可。
之后将这个文件上传到Linux系统:
上传到 /usr/local/bin 目录,不需要解压,并且将其重命名为docker-compose:
然后使用下面命令查看版本号:
docker-compose version
如果出现下面的错误,则输入下面命令添加可执行权限即可:
chmod +x /usr/local/bin/docker-compose
五.服务器部署
为了上传我们的项目到服务器上,idea提供了内置功能:(在顶部菜单栏点击 工具(T) → 部署(E)或直接使用快捷键 Ctrl+Alt+Shift+X
唤出菜单)
随后点击+号选择SFTP:
在弹出窗口中点击
+
添加新服务器,填写服务器名称、类型(如SFTP/FTP)、主机地址、端口、用户名和密码。
之后我们配置SSH信息:
然后再上方选择映射,在映射内来选择我们项目要上传到服务器的哪个目录:
随后点击确定, 然后右键根目录,点击部署并上传服务器:
随后将项目上传到服务器后使用cd命令进入,之后下载maven:
cd /你的文件夹路径
sudo yum install maven
之后使用命令执行maven一键打包:(跳过测试环境)
sudo mvn package -DskipTests
等待打包成功后,使用docker compose来指定启动哪个配置文件里的服务:
sudo docker-compose -f docker-compose.yml up
随后docker compose就开始为我们拉取镜像并启动容器。
确定所有的服务全部启动成功了,使用Ctrl+c退出,由于刚刚执行的命令是在前台启动很影响我们的操作与性能,所以在我们前面的基础上加上-d来让所有的服务在后台运行:
sudo docker-compose -f docker-compose.yml up -d
在此过程中我们可以通过下面命令查看当前各个容器的运行状态:
sudo docker stats
那如果某一个模块启动失败了的话,可以使用下面命令单独对其重新启动:
sudo docker-compose -f docker-compose.yml up 模块名
如果想手动停止模块:
docker-compose down
停止并移除所有关联容器、网络和卷(添加 -v
保留数据卷)
查看容器是否正常运行:
docker-compose ps
或查看日志:
docker-compose logs