欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker系列八:docker-compose容器编排

程序员文章站 2022-06-16 23:12:39
...

目录

一:安装docker-compose

二:编写docker-compose.yml

三:docker-compose常用命令

# 启动应用

# 停止应用(会删除服务资源-不删除卷)

# 删除所有(停止状态的)服务容器

# 启动已经存在的服务容器

# 停止已经处于运行状态的容器,但不删除它

# 重启项目中的服务

# 查看docker-compose对应服务(容器)的状态

# 列出服务(容器)内运行的进程

# 启动单个容器

# 指定yml文件启动容器

Compose 和 Docker 兼容性


一:安装docker-compose

Version 1.18.0 or higher

Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:Releases · docker/compose · GitHub

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果github太慢使用daocloud
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
注:要安装其他版本的 Compose,请替换 1.24.1。

将可执行权限应用于二进制文件:
$ sudo chmod +x /usr/local/bin/docker-compose

创建软链:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:
$ docker-compose --version
    docker-compose version 1.24.1, build 4667896b
    
卸载docker-compose
sudo rm /usr/local/bin/docker-compose

二:编写docker-compose.yml

参考官网:https://yeasy.gitbook.io/docker_practice/compose/commands

version: '3'   # 描述compose文件格式版本
services:
  php:         # 服务名称 - 可以通过它单独启动服务
    image: php:7.2-fpm         # 创建容器需要的镜像名
    container_name: picture_php   # 容器名称
    restart: always               # 容器重启策略,这里每次退出都重启
    privileged: true              # 允许容器中运行一些特权命令
    volumes:  # 数据卷挂载,可以设置宿主机路径或数据卷名称--不同版本写法有区别
      - /home/python/py_picture/html:/usr/share/nginx/html
      - /home/python/py_picture/build_image/php7/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro
      - /home/python/py_picture/build_image/php7/php-fpm.d:/usr/local/etc/php-fpm.d
      #- type: bind
      #  source: /home/python/py_picture/build_image/php7/php-fpm.conf
      #  target: /usr/local/etc/php-fpm.conf
      #  read_only: true
    ports:                       # 宿主机:容器端口映射关系
      - 9009:9000
    environment: # 创建容器时所需的环境变量
        Version: 1
    networks:                    # 配置容器链接的网络
      - py_picture

  web:
    image: nginx:1.14.0-alpine
    container_name: picture_nginx
    restart: always
    privileged: true
    volumes:
      - /home/python/py_picture/html:/usr/share/nginx/html
      - /home/python/py_picture/build_image/nginx_v2/conf.d:/etc/nginx/conf.d:ro
      - /home/python/py_picture/build_image/nginx_v2/log:/var/log/nginx
    ports:
      - 90:80
    networks:
      - py_picture

# 定义网络可以多个
networks:
  py_picture:
    external: true

三:docker-compose常用命令

# 启动应用

docker-compose up

# 停止应用(会删除服务资源-不删除卷)

docker-compose down

# 删除所有(停止状态的)服务容器

docker-compose rm 推荐先执行 docker-compose stop 命令来停止容器

# 启动已经存在的服务容器

docker-compose start

# 停止已经处于运行状态的容器,但不删除它

docker-compose

# 重启项目中的服务

docker-compose restart

# 查看docker-compose对应服务(容器)的状态

docker-compose ps

# 列出服务(容器)内运行的进程

docker-compose top

# 启动单个容器

docker-compose -f public-compose.yml up web
    -> web是服务名称

# 指定yml文件启动容器

docker-compose -f 具体的docker-compose.yml up -d
    -> -d:后台模式启动

Compose 和 Docker 兼容性

编写文件格式

Docker 引擎

撰写规范

19.03.0+

3.8

19.03.0+

3.7

18.06.0+

3.6

18.02.0+

3.5

17.12.0+

3.4

17.09.0+

3.3

17.06.0+

3.2

17.04.0+

3.1

1.13.1+

3.0

1.13.0+

2.4

17.12.0+

2.3

17.06.0+

2.2

1.13.0+

2.1

1.12.0+

2.0

1.10.0+