Docker compose 部署微服务项目(从0-1出发纯享版无废话)
目录
一.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
二.编写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
五.服务器部署
随后将项目上传到服务器后使用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