当前位置: 首页 > news >正文

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

相关文章:

  • 汽车制造行业如何在数字化转型中抓住机遇?
  • IdeaVim 配置与使用指南
  • 算法效率的钥匙:从大O看复杂度计算 —— C语言数据结构第一讲
  • Linux红帽:RHCSA认证知识讲解(十 四)分区管理、交换分区,创建逻辑卷与调整逻辑卷的大小
  • 【网络原理】从零开始深入理解TCP的各项特性和机制.(二)
  • WPF常用技巧汇总 - Part 2
  • Java详解LeetCode 热题 100(01):LeetCode 1. 两数之和(Two Sum)详解
  • EDR 保护时间(EDR Guard Time)
  • DeepSeek智能时空数据分析(四):绘制行政区域并定制样式
  • Java后端开发day37--源码解析:TreeMap可变参数--集合工具类:Collections
  • PostgreSQL的扩展 credcheck
  • 犬鼻子检测数据集VOC+YOLO格式6808张1类别近距离拍摄
  • 云原生课程-Docker
  • NLP预处理:如何 处理表情符号
  • Linux操作系统从入门到实战(四)Linux基础指令(下)
  • Hyper-V安装Win10系统,报错“No operating system was loaded“
  • 初识数据结构——二叉树从基础概念到实践应用
  • 量子纠缠式架构:当微服务同时存在于所有节点时,CAP定理是否依然成立?
  • 来自B站-AI匠的“RAG的prompt设计指南“的部分截图
  • python+flask+flask-sockerio,部署后sockerio通信异常
  • 第五届全国医院人文管理路演在昆山举办:患者体验才是温度计
  • 餐饮店直播顾客用餐,律师:公共场所并非无隐私,需对方同意
  • 庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会隆重举行,习近平发表重要讲话
  • 旧衣服旧纸箱不舍得扔?可能是因为“囤物障碍”
  • 政治局会议:根据形势变化及时推出增量储备政策,加强超常规逆周期调节
  • 《不眠之夜》上演8年推出特别版,多业态联动形成戏剧经济带