Rootop 服务器运维与web架构

通过 docker-compose 服务编排

以下代码保存为:docker-compose.yml

version: '2'
services:
 # 容器名
 a1:
  # 基础镜像
  image: apache_del
  restart: always
  # 设置多个端口映射
  ports:
  - "8080:80"
  - "9090:80"
  # 目录映射
  volumes:
  - /home/dockermount:/mnt
  tty: true
  # 主机名
  hostname: a1
  # 域
  domainname: a.com
  # 容器间互联,可以不用
  links:
  - a2
  # 容器启动时执行的命令
  command: /usr/sbin/init
 a2:
  image: apache_del
  restart: always
  ports:
  - "8081:80"
  volumes:
  - /home/dockermount:/mnt
  tty: true
  hostname: a2
  domainname: a.com
  links:
  - a3
  command: /usr/sbin/init
 a3:
  image: apache_del
  restart: always
  ports:
  - "8082:80"
  volumes:
  - /home/dockermount:/mnt
  tty: true
  hostname: a3
  domainname: a.com
  command: /usr/sbin/init

# 可以通过hostname设置主机名,通过domainname设置域,结果主机名就是hostname.domainname,如 a1.a.com

docker-compose up -d 根据配置文件启动并后台运行
docker-compose down 停止并删除配置文件中的容器,不会删除其它容器
docker-compose ps

知识点:
1、
如果 docker-compose.yml 文件保存在 /root/file/compose 目录,生成的容器名为 上一层目录名字+容器名+数字序号,如: compose_a1_1

2、
如果用compose生成容器,容器间可以互相ping通,不需要加links参数。不像手动docker run 加link参数后,/etc/hosts会添加主机名和ip映射。

3、需要注意配置文件,空格的缩进。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3907.html

作者:Venus

服务器运维与性能优化

评论已关闭。