Docker Compose 的安装与使用
简介
Docker Compose 是一个用来定义和运行复杂应用的 Docker 工具。一个使用 Docker 容器的应用,通常由多个容器组成。使用 Docker Compose 不再需要使用 shell 脚本来启动容器。
Compose 通过一个配置文件来管理多个 Docker 容器,在配置文件中,所有的容器通过 services 来定义,然后使用 docker-compose 脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
安装
快速安装适合对应系统的最新版的 Docker Compose
1 | sudo curl -L "https://github.com/docker/compose/releases/download/$(wget -qO- "https://api.github.com/repos/docker/compose/releases/latest" | grep "tag_name" | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
授权
1 | sudo chmod +x /usr/local/bin/docker-compose |
查看安装结果
1 | docker-compose -v |
使用
docker-compose 命令的:
1 | 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 :打印版本并退出
查看帮助文档
1 | docker-compose --help |
如下
1 |
|
命令
1、拉取镜像启动容器
一步到位,自动拉取服务依赖的镜像并启动容器
1 | docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...] |
- 启动所有服务
docker-compose up
- 在后台所有启动服务
docker-compose up -d
- 在后台所有启动服务 -f 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定
docker-compose -f docker-compose.yml up -d
2、拉取镜像
1 | docker-compose pull [options] [SERVICE...] |
命令选项[options]
--ignore-pull-failures
忽略拉取镜像过程中的错误--parallel
同时拉取多个镜像--quiet
拉取镜像过程中不打印进度信息
3、列出项目中当前的所有容器
1 | docker-compose ps [options] [SERVICE...] |
4、停止正在运行的容器
1 | docker-compose stop [options] [SERVICE...] |
5、启动已经存在的服务容器
使用 docker-compose stop
停止的容器可以使用该命令重新启动
1 | docker-compose start [SERVICE...] |
6、重启项目中的服务
1 | docker-compose restart [options] [SERVICE...] |
7、删除所有停止状态的服务容器
推荐先执行docker-compose stop
命令来停止容器
1 | docker-compose rm [options] [SERVICE...] |
命令选项[options]
-f, --force
强制直接删除包含非停止状态的容器-v
删除容器所挂载的数据卷
8、停止和删除容器、网络、卷、镜像
1 | docker-compose down [options] |
命令选项 [options]
--rmi type
删除镜像类型,类型可选:--rmi all
删除 compose 文件中定义的所有镜像--rmi local
删除镜像名为空的镜像
-v, --volumes
删除已经在 compose 文件中定义的和匿名的附在容器上的数据卷--remove-orphans
删除服务中没有在 compose 中定义的容器
9、验证并查看 compose 文件配置
1 | docker-compose config [options] |
选项参数[options]
--resolve-image-digests
将镜像标签标记为摘要-q, --quiet
只验证配置不输出,当配置正确时不输出任何容器,当配置错误时输出错误信息--services
打印服务名称,一行显示一个--volumes
打印数据卷名称,一行显示一个
10、在运行的容器中执行命令
1 | docker-compose exec [options] SERVICE COMMAND [ARGS...] |
选项参数[options]
-d
分离模式,以后台守护进程运行命令。--privileged
获取特权-T
禁用分配 TTY,默认docker-compose exec
分配 TTY。--index=index
当一个服务拥有多个容器时可通过该参数登录到该服务下的任何服务
本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShiGuang
评论