Docker compose 部署微服务项目(从0-1出发纯享版无废话)

目录

一.Docker安装

(1)安装依赖

(2)安装Docker

(3)启动Docker服务

(4)系统配置

(5)镜像加速配置

(6)验证安装

二.编写Dockerfile文件

[四.docker compose手动安装命令](#四.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 镜像的指令。它允许开发者定义应用程序运行所需的环境、依赖项和配置,从而实现应用程序的容器化。

bash 复制代码
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
相关推荐
heart000_11 小时前
用 eBPF 打造下一代云原生可观测性平台:Kubernetes + Cilium 实践指南
云原生·容器·kubernetes
iHero1 小时前
【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问
linux·docker·jitsi meet
意倾城7 小时前
DockerFile实战
docker
黄暄11 小时前
Docker项目部署深度解析:从基础命令到复杂项目部署
运维·笔记·docker·容器·持续部署
杨浦老苏12 小时前
支持同步观看的媒体服务器GhostHub
docker·群晖·多媒体
杨浦老苏12 小时前
全新的开源监控工具CheckCle
运维·docker·群晖
万山y17 小时前
## Docker 中 Elasticsearch 启动失败:日志文件权限问题排查与解决
elasticsearch·docker·jenkins
Kendra91919 小时前
Docker 运维管理
运维·docker·容器
JANYI201821 小时前
一文读懂----Docker 常用命令
java·docker·eureka
liujiangxu21 小时前
docker默认存储迁移
docker