Docker-compose常用命令整理
Docker-Compose项目是Docker官方提供的,实现对Docker集群快速编排的开源工具。
Docker-compose安装部署
方法一:直接下载二进制安装包(推荐)
# Github源
[root@localhost ~]# curl -L https://github.com/docker/compose/releases/download/1.26.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# Daocloud国内源 (推荐)
[root@localhost ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 赋予执行权限
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
方法二:pip安装
[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum install python-pip -y
[root@localhost ~]# pip --version
[root@localhost ~]# pip install --upgrade pip
[root@localhost ~]# pip install -U -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose
验证是否安装成功
[root@localhost ~]# docker-compose version
docker-compose version 1.26.0, build d4451659
docker-py version: 4.2.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
Docker-compose常用命令整理
Docker-Compose 命令格式
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 显示更多调试信息;
--log-level LEVEL 设置日志等级,可指定参数如下:DEBUG, INFO, WARNING, ERROR, CRITICAL
-v, --version 打印版本信息并退出;
version 更详细的打印版本信息;
授之以鱼不如授之以渔,学会使用命令帮助
以下三种方式均可查看具体命令使用帮助
下面就以 docker-compose --help 命令返回的结果进行一一解释各个命令的用法
[root@localhost ~]# docker-compose --help
Commands:
build Build or rebuild services
config Validate and view the Compose file
create Create services
down Stop and remove containers, networks, images, and volumes
events Receive real time events from containers
exec Execute a command in a running container
help Get help on a command
images List images
kill Kill containers
logs View output from containers
pause Pause services
port Print the public port for a port binding
ps List containers
pull Pull service images
push Push service images
restart Restart services
rm Remove stopped containers
run Run a one-off command
scale Set number of containers for a service
start Start services
stop Stop services
top Display the running processes
unpause Unpause services
up Create and start containers
version Show the Docker-Compose version information
docker-compose build [options] [–build-arg key=val…] [SERVICE…]
构建或者重建项目中的容器
选项如下:
--build-arg key=val 设置服务的 build-time 变量,即设置服务的构建时间。
--compress 通过gzip构建上下文环境
--force-rm 强制删除构建过程中的容器.
-m, --memory MEM 设置构建容器的内存限制.
--no-cache 构建镜像的过程当中不使用缓存.
--no-rm 当成功后构建容器后,保留构建过程中的容器,不移除.
--parallel 并行的构建镜像.
--progress string 设置进程的输出类型 (auto, plain, tty).
EXPERIMENTAL flag for native builder.
To enable, run with COMPOSE_DOCKER_CLI_BUILD=1)
--pull 始终通过pull来获取最新镜像
-q, --quiet 安静模式,不显示输出信息。
docker-compose config [options]
验证并查看compose文件配置的正确性。
选项如下:
--resolve-image-digests 将镜像标签标记为摘要.
--no-interpolate 不使用环境变量.
-q, --quiet 只验证配置,不输出信息.
--services 一行一行的打印服务名.
--volumes 一行一行的打印数据卷名.
--hash="*" 一行一行打印服务使用的bash.
docker-compose create [options] [SERVICE…]
创建服务中的容器
选项如下:
--force-recreate 重新创建容器,即使配置文件和镜像都没有变化,不能和--no-create参数一起使用.
--no-recreate 如果容器已经存在则不重建,不能和--force-recreate参数一起使用.
--no-build 不构建镜像,即使镜像缺失.
--build 创建容器之前先构建镜像.
docker-compose down [options]
停止 up 命令所启动的容器,并移除网络
选项如下:
--rmi type 删除镜像.当type为all时删除所有镜像;当type为local时,只删除那些没有标签名字的镜像
-v, --volumes 删除已经在容器中声明的数据卷和匿名附在容器上的数据卷.
--remove-orphans 移除没有在compose file定义的服务中的容器.
-t, --timeout TIMEOUT 定义一个超时时间,默认是10s.
docker-compose events [options] [SERVICE…]
接收容器中的事件
选项如下:
–json 以json流的方式输出
docker-compose exec [options] [-e KEY=VAL…] SERVICE COMMAND [ARGS…]
选项如下:
-d, --detach 类似docker的-d选项,后台运行.
--privileged 为容器获取特权.
-u, --user USER 指定容器内运行的用户.
-T 禁止分配tty终端,exec参数默认会分配tty终端.
--index=index 当一个服务存在多个容器时,可以登录到任意一个容器,默认值为1.
-e, --env KEY=VAL 设置环境变量,可重复使用,API版本必须>=1.25
-w, --workdir DIR 指定命令运行的工作空间.
docker-compose images [options] [SERVICE…]
列出镜像
选项如下:
-q, --quiet 只列出镜像的Image Id
docker-compose kill [options] [SERVICE…]
强制杀死容器
选项如下:
-s SIGNAL 指定发送给容器的信号.
docker-compose logs [options] [SERVICE…]
查看容器的输出内容
选项如下:
--no-color 关闭颜色输出.
-f, --follow 跟踪日志,实时输出.
-t, --timestamps 显示时间戳.
--tail="all" 指定从每个容器结尾出开始显示的行数,默认是为:all.
docker-compose pause [SERVICE…]
暂停一个服务
docker-compose unpause [SERVICE…]
恢复一个服务
docker-compose port [options] SERVICE PRIVATE_PORT
显示某个容器端口所映射的端口
选项如下:
--protocol=proto 指定协议类型,默认为tcp
--index=index 如果一个服务存在多个容器,则指定容器的序号,默认为1.
docker-compose ps [options] [SERVICE…]
列出容器
选项如下:
-q, --quiet 只列出ID
--services 列出服务
--filter KEY=VAL 通过指定的值过滤服务
-a, --all 展示所有容器,包括停止的
docker-compose pull [options] [SERVICE…]
根据compose file定义的内容为服务拉取镜像,但是不启动容器
选项如下:
--ignore-pull-failures 忽略拉取镜像过程中的错误.
--parallel 同时拉取多个镜像,默认开启此参数.
--no-parallel 关闭同时拉取多个镜像选项.
-q, --quiet 安静模式,不打印信息
--include-deps 同时拉取声明为依赖的服务镜像
docker-compose push [options] [SERVICE…]
推送服务依赖的镜像。
选项如下:
--ignore-push-failures 忽略推送镜像过程中的出现的错误.
docker-compose restart [options] [SERVICE…]
重启运行中的容器
选项如下:
-t, --timeout TIMEOUT 指定重启前停止容器的超时时间,默认为10s.
docker-compose rm [options] [SERVICE…]
移除停止的容器
选项如下:
-f, --force 强制删除,无需确认
-s, --stop 如果有需要,在删除之前先停止容器
-v 删除使用挂载在容器上的数据卷
-a, --all 弃用,没影响.
docker-compose run [options] [-v VOLUME…] [-p PORT…] [-e KEY=VAL…] [-l KEY=VALUE…] SERVICE [COMMAND] [ARGS…]
在服务上运行一次性的命令
选项如下:
-d, --detach 后台运行,打印新创建容器的名字.
--name NAME 为容器指定名字
--entrypoint CMD 覆盖镜像中默认运行的命令.
-e KEY=VAL 设定环境变量,可多次使用
-l, --label KEY=VAL 添加或覆盖标签,可重复使用
-u, --user="" 指定容器运行的用户或者UID
--no-deps 不启动关联容器.
--rm 运行命令后自动删除容器, -d模式下将忽略.
-p, --publish=[] 映射容器端口到本地主机
--service-ports 配置服务端口并映射到本地主机.
--use-aliases 使用网络的别名.
-v, --volume=[] 绑定数据卷,默认为[]
-T 不分配tty.
-w, --workdir="" 指定容器中的工作目录
docker-compose scale [options] [SERVICE=NUM…]
设置服务运行的容器个数,通过service=num 值设定
选项如下:
-t, --timeout TIMEOUT 指定重启前停止容器的超时时间,默认为10s
docker-compose start [SERVICE…]
启动已经存在的容器
docker-compose stop [options] [SERVICE…]
停止正在运行的容器,但不删除.
选项如下:
-t, --timeout TIMEOUT 指定重启前停止容器的超时时间,默认为10s.
docker-compose top [SERVICE…]
列出服务中包含的所有的进程
docker-compose up [options] [–scale SERVICE=NUM…] [SERVICE…]
为服务构建、(重新)创建、启动容器或者附着到容器。除非它们已经在运行,否则此命令还会启动任何关联的服务。
选项如下:
-d, --detach 在后台运行服务容器,打印新容器名。不与--abort-on-container-exit兼容.
--no-color 不使用颜色来区分不同的服务的控制台输出.
--quiet-pull 安静模式,不带打印过程信息
--no-deps 不启动关联服务.
--force-recreate 重建容器,即使他们的镜像和配置文件都没变化.
--always-recreate-deps 重新构建依赖镜像,不与--no-recreate兼容.
--no-recreate 如果容器已经存在了,则不重建,不能与--force-recreate兼容.
--no-build 不再构建镜像,即使缺失.
--no-start 创建完成不启动服务.
--build 在启动容器前构建镜像.
--abort-on-container-exit 如果有任意容器停止了,就停止所有的容器,不与-d兼容.
--attach-dependencies 连接到附着的容器
-t, --timeout TIMEOUT 指定当连接容器或容器已经运行时或停止容器时候的超时时间(默认为 10 秒)
-V, --renew-anon-volumes 重新创建匿名卷,而不是从以前的容器中检索数据.
--remove-orphans 移除compose file文件服务中未定义的容器.
--exit-code-from SERVICE 返回所选服务的退出代码,同时包含--abort-on-container-exit参数功能.
--scale SERVICE=NUM 覆盖Compose文件中存在的`scale`设置,将服务扩展到NUM所设置的数量.