侧边栏壁纸
博主头像
随心 博主等级

没有天赋,那就一直重复

  • 累计撰写 13 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

dockercompose容器编排

随心
2025-06-05 / 0 评论 / 0 点赞 / 11 阅读 / 0 字

安装Compose:

例如从github下载 2.5.0版本的docker-compose,这是教程里的步骤,也可以直接问deepseek或者豆包,都会告诉你怎么安装。

下载下来的文件放到 /usr/local/bin目录下,命名为 docker-compose

curl -L https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

添加权限

chmod +x /usr/local/bin/docker-compose

验证

docker-compose version

查看帮助:

docker-compose -h

一个重要问题,就是docker-compose.yml这个创建的文件名,需要符合标准。

这样你每次执行命令就不需要指定你简历的yml文件。

否则你就需要每次执行docker-compose命令的时候,都需要带上-f指定你创建的非标准文件名的yml文件才可以执行命令。

创建并启动docker-compose服务:(类似 docker run)-d后台运行

docker-compose up -d

docker-compose -f yml文件名 up -d

docker-compose -f yml文件名 --env-file .隐藏变量文件名 up -d

停止并删除容器、网络、卷、镜像:(类似 docker stop + docker rm)

docker-compose down

进入容器实例内部:

docker-compose exec <yml里面的服务id> /bin/bash

展示当前docker-compose编排过的运行的所有容器:

docker-compose ps

展示当前docker-compose编排过的容器进程:

docker-compose top

查看容器输出日志:

docker-compose logs 服务名

docker-compose logs --since=10m 看近10分钟的日志。

检查配置:

docker-compose config

docker-compose -f yml文件名 config

docker-compose -f yml文件名 --env-file .隐藏变量文件名 config

有问题才输出

docker-compose config -q

重启服务:

docker-compose restart

启动服务:(类似 docker start)

docker-compose start

停止服务:

docker-compose stop

# docker-compose文件版本号

version: "3"

# 配置各个容器服务

services:

microService: #服务名

image: springboot_docker:1.0 # 使用 Docker Hub 上的最新1.0镜像

container_name: ms01 # 容器名称,如果不指定,会生成一个服务名加上前缀的容器名

ports: #容器的端口映射,本机端口:容器端口

- "6001:6001"

volumes: #文件挂载,本机目录:容器目录

- /app/microService:/data

networks: #自定义网络

- springboot_network

depends_on: # 配置该容器服务所依赖的容器服务

- redis

- mysql

redis:

image: redis:6.0.8

ports:

- "6379:6379"

volumes:

- /app/redis/redis.conf:/etc/redis/redis.conf

- /app/redis/data:/data

networks:

- springboot_network

command: redis-server /etc/redis/redis.conf

mysql:

image: mysql:5.7

environment:

MYSQL_ROOT_PASSWORD: '123456'

MYSQL_ALLOW_EMPTY_PASSWORD: 'no'

MYSQL_DATABASE: 'db_springboot'

MYSQL_USER: 'springboot'

MYSQL_PASSWORD: 'springboot'

ports:

- "3306:3306"

volumes:

- /app/mysql/db:/var/lib/mysql

- /app/mysql/conf/my.cnf:/etc/my.cnf

- /app/mysql/init:/docker-entrypoint-initdb.d

networks:

- springboot_network

command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问

networks:

# 创建 springboot_network 网桥网络

springboot_network:

yml文件里面设置 restart: always 参数时,此参数在服务在单个服务内存在。

services:

服务名:

image: 镜像:版本号

container_name: 容器名

restart: always

Docker 会确保容器:

  1. 始终运行:即使容器因错误崩溃、手动停止或 Docker 守护进程重启,也会自动重新启动。

  2. 故障自愈:如果服务内部发生崩溃(如应用程序异常退出),Docker 会立即尝试重启容器。

  3. 随 Docker 启动:当主机重启或 Docker 服务重启时,容器会自动启动。

服务器上安装ip和ping命令

ip命令

yum install iproute

apt-get update && apt-get install iproute2

ping命令

yum install iputils

apt-get install inetutils-ping

0

评论区