当前位置: 首页 > 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

http://www.xdnf.cn/news/172891.html

相关文章:

  • 代数拓扑和黎曼几何有什么联系吗?
  • 【深度好文】4、Milvus 存储设计深度解析
  • 公网域名如何解析到内网ip服务器?自己域名映射外网访问
  • 3. 使用idea将一个git分支的部分提交记录合并到另一个git分支
  • Golang | 集合求交
  • 常用的性能提升手段--提纲
  • 二叉树的前序、中序和后序遍历:详解与实现
  • 非计算机专业如何利用AI开展跨学科和交叉研究
  • 智能硬件行业售后服务管理:提升客户体验的关键所在
  • Java:网络编程
  • CesiumEarth更新至1.14.0版本,重新设计了图层设置页面,优化了许多界面交互问题
  • K8S Pod 常见数据存储方案
  • Lua 第12部分 日期和时间
  • PH热榜 | 2025-04-27
  • HTML倒数
  • java 类的实例化过程,其中的相关顺序 包括有继承的子类等复杂情况,静态成员变量的初始化顺序,这其中jvm在干什么
  • xe-upload上传文件插件
  • WPF常用技巧汇总 - Part 2
  • Qt项目全局设置UTF-8编码方法(MSVS编译中文报错解决办法)
  • 新能源汽车运动控制器核心芯片选型与优化:MCU、DCDC与CANFD协同设计
  • 设计一个新能源汽车控制系统开发框架,并提供一个符合ISO 26262标准的模块化设计方案。
  • Java高频常用工具包汇总
  • [特殊字符]实战:使用 Canal + MQ + ES + Redis + XXL-Job 打造高性能地理抢单系统
  • Spark Mllib 机器学习
  • 第二章,网络类型及数据链路层协议
  • SMART:大模型在关键推理步骤辅导小模型,在保持高推理效率的同时,显著提升小模型的推理能力!!
  • python合并一个word段落中的run
  • 决策树相关案例
  • 【Node.js 】在Windows 下搭建适配 DPlayer 的轻量(简陋)级弹幕后端服务
  • Linux系统之设置开机启动运行桌面环境