Compose容器编排

本文介绍了DockerCompose的基本概念,如何使用docker-compose.yml文件管理一个项目中的多个容器,包括服务定义、启动顺序、环境变量设置、数据卷映射和dockerfile的应用。还详细讲解了常见指令和实战案例,如安装、配置、启动和停止容器等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

image

Compose容器编排

一 入门

(一) 场景

  1. 一个应用系统,的启动往往依赖了多个容器(Nginx tomcat redis mysq…),每个容器的启动都有先后顺序,一个一个手动管理很麻烦。
  2. 往往我们会管理多个服务器,每个服务器上有几十个容器,每个容器由分属于不同的web系统,无法记忆,管理繁琐。(项目环境迁移也麻烦)

(二) 简介

DockerCompose提供的,站在一个项目角度,管理和编排一定数量的容器。

  • 总结
    • ① 站在项目角度关联多个docker容器
    • ② 按照一定的顺序,编排docker容器。

1703747406367

(三) 要素

  • docker-compose.yml文件
    • 定义描述一个项目中所有容器/Service服务的信息:名字、端口、环境变量、启动顺序、数据卷映射、docker build
  • Project 项目:一个web项目,其中包含多个容器。
  • Service 服务:一个容器。

二 使用

1. yum安装
1. 安装扩展yum源
yum install -y epel-release

2. 安装docker-compose
yum install -y docker-compose

3. 验证docker-compose
[root@localhost ~]# docker-compose -v
docker-compose version 1.18.0, build 8dd22a9
2. 入门案例

准备一个项目cms相关容器:nginx、redis

(1) 创建目录,作为项目名

注意:空目录,不要放无关紧要其他文件。

(2) 在项目名目录中,创建docker-compose.yml

注意:文件名,固定,不要改。

(3) 编写资源(容器)清单:docker-compose.yml

# 第一步:先写版本
version: '3'

# 第二步:编写所有服务(容器)
services:
  # nginx容器
  nginx-1: # 容器名字: 项目名_容器名_x,例如:cms_nginx-1_?
    image: nginx:1.21 # 使用的镜像:tag
    ports: # 映射容器启动端口,相当于docker run -p
      - 88:80
  # redis容器
  redis-1:
    image: redis:5
    ports:
      - 6379:6379

(4) dockercompose管理服务(容器)

注意:必须在docker-compose.yml所在目录执行。

1. 启动
docker-compose up [-d]

2. 关闭
docker-compose down [-v]

3. 重启
docker-compose restart

4. 查看项目下的服务(容器)
docker-compose ps
说明:查看当前这个项目下的所有服务(容器)

(5) 版本参考

image.png

三 模板指令

1. 指令详解

(1) image

​ 指定该服务(容器),用到的镜像名:

​ 类似:docker run 后面的 镜像名:tag

(2) ports:

​ 指定服务(容器),映射的端口

​ 类似:docker run -p

(3) environment:

​ 指定该服务(容器)的环境变量

​ 类似:docker run -e MYSQL_ROOT_PASSWORD=xxxx

# 第一步:先写版本
version: '3'

# 第二步:编写所有服务(容器)
services:
  mysql-1:
    image: mysql:5.7
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=admins

(4) env_file:

​ 可以将环境变量的值全部存放在ENV文件中,通过env_file引用这个文件即可。

​ 注意:通常放在当前docker-compose.yml 同级或者子目录中,例如:commons/mysql/ENV

# 第一步:先写版本
version:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值