[关闭]
@Chiang 2019-09-24T20:48:39.000000Z 字数 2614 阅读 593

Docker Compose (编排)

Docker


  • 服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元。

可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。实现对 Docker 容器集群的快速编排。

基本命令

  1. # 创建并且启动所有容器
  2. docker-compose up
  3. # 创建并且启动多个容器
  4. docker-compose up 服务1 服务2 ...
  5. # 创建并且以后台运行的方式启动多个容器
  6. docker-compose up -d 服务1 服务2 ...
  7. # 启动服务
  8. docker-compose start 服务1 服务2 ...
  9. # 停止服务
  10. docker-compose stop 服务1 服务2 ...
  11. # 重启服务
  12. docker-compose restart 服务1 服务2 ...
  13. # 构建或者重新构建服务
  14. docker-compose build 服务1 服务2 ...
  15. # 删除并且停止容器
  16. docker-compose rm 服务1 服务2 ...
  17. # 停止并删除容器,网络,图像和挂载卷
  18. docker-compose down 服务1 服务2 ...

宿主机访问docker里的MySQL

  1. # 找到映射IP
  2. ifconfig
  3. # 连接MySQL
  4. mysql -h172.31.1.191 -uroot -p

compose 命令说明

命令对象与格式

  1. # 查看具体某个命令的使用格式
  2. docker-compose [COMMAND] --help
  3. docker-compose help [COMMAND]
  4. # 命令的基本的使用格式
  5. docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]

命令选项

  • -f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。
  • -p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。
  • --x-networking 使用 Docker 的可拔插网络后端特性
  • --x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge
  • --verbose 输出更多调试信息。
  • -v, --version 打印版本并退出。

命令使用说明

build

构建(重新构建)项目中的服务容器

  1. # 格式
  2. docker-compose build [options] [SERVICE...]
  • --force-rm 删除构建过程中的临时容器
  • --no-cache 构建镜像过程中不使用 cache(这将加长构建过程)
  • --pull 始终尝试通过 pull 来获取更新版本的镜像

config

验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。

down

此命令将会停止 up 命令所启动的容器,并移除容器,网络,图像和挂载卷

exec

进入指定的容器。

help

获得一个命令的帮助。

image

列出 Compose 文件中包含的镜像。

kill

  1. # 格式
  2. docker-compose kill [options] [SERVICE...]
  3. # 支持通过 -s 参数来指定发送的信号,例如通过如下指令发送 SIGINT 信号
  4. docker-compose kill -s SIGINT

logs

  1. # 格式
  2. docker-compose logs [options] [SERVICE...]

pause

  1. # 暂停一个服务容器
  2. docker-compose pause [SERVICE...]

port

ps

pull

push

restart

rm

run

scale

start

stop

top

unpause

up

version

Compose 模板文件

模板文件是使用 Compose 的核心,默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式.

image

指定镜像

build

(需要 Dockerfile)等来自动构建生成镜像
如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中重复设置

  • context 指定 Dockerfile 所在文件夹的路径
  • dockerfile 指定 Dockerfile 文件名
  • arg 指令指定构建镜像时的变量
  • cache_from 指定构建镜像的缓存

cap_add, cap_drop

指定容器的内核能力(capacity)分配

  1. # 让容器拥有所有能力可以指定为
  2. cap_add:
  3. - ALL
  4. # 去掉 NET_ADMIN 能力可以指定为
  5. cap_drop:
  6. - NET_ADMIN

command

覆盖容器启动后默认执行的命令

  1. command: echo "hello world"

configs

cgroup_parent

container_name

deploy

devices

depends_on

dns

dns_search

tmpfs

env_file

environment

expose

extra_hosts

healthcheck

image

labels

logging

network_mode

networks

pid

ports

secrets

security_opt

stop_signal

sysctls

ulimits

volumes


参考资料:
Docker — 从入门到实践
歪麦博客
GitHub
我的GitHub

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注