Docker compose 常用命令 ¶
Docker
docker compose [-f <arg>...] [options] [COMMAND] [ARGS...]
-f --file FILE 指定Compose模板文件,默认为docker compose.yml
-p --project-name NAME 指定项目名称,默认使用当前所在目录为项目名
--verbose 输出更多调试信息
-v,-version 打印版本并退出
--log-level LEVEL 定义日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)
docker compose up ¶
创建启动容器
docker compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
选项包括:
-d 在后台运行服务容器
-no-color 不是有颜色来区分不同的服务的控制输出
-no-deps 不启动服务所链接的容器
--force-recreate 强制重新创建容器,不能与-no-recreate同时使用
–no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
–no-build 不自动构建缺失的服务镜像
–build 在启动容器前构建服务镜像
–abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用
-t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)
–remove-orphans 删除服务中没有在compose文件中定义的容器
docker compose ps ¶
列出项目中所有的容器
docker compose ps [options] [SERVICE...]
-a、 --all显示所有停止的容器(包括由run命令创建的容器)
--filter string按属性筛选服务(支持的筛选器:状态)。
--format string格式化输出。值:[table|json](默认为“table”)
-q、 --quiet仅显示ID
--services显示服务
--status字符串数组按状态筛选服务。值:[已暂停|正在重新启动|正在删除|正在运行|已死亡|已创建|已退出]
docker compose stop ¶
停止正在运行的容器
docker compose stop [options] [SERVICE...]
-t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)
docker compose down ¶
停止和删除容器、网络、卷、镜像
docker compose down [options]
–rmi type, 删除镜像,类型必须是:
all, 删除compose文件中定义的所有镜像;
local,删除镜像名为空的镜像
-v, –volumes, 删除已经在compose文件中定义的和匿名的附在容器上的数据卷
–remove-orphans, 删除服务中没有在compose中定义的容器
docker compose logs ¶
查看服务容器的输出
docker compose logs [options] [SERVICE...]
-f, --follow 跟踪日志输出
-t, --timestamps 显示时间戳
--tail="all" 容器日志末尾显示行数
docker compose bulid ¶
构建(重新构建)项目中的服务容器
docker compose build [options] [--build-arg key=val...] [SERVICE...]
–compress 通过gzip压缩构建上下环境
–force-rm 删除构建过程中的临时容器
–no-cache 构建镜像过程中不使用缓存
–pull 始终尝试通过拉取操作来获取更新版本的镜像
-m, –memory MEM为构建的容器设置内存大小
–build-arg key=val 为服务设置build-time变量
docker compose pull ¶
拉取在compose文件中服务依赖的镜像,但不启动容器
docker compose pull [options] [SERVICE...]uppause
–ignore-pull-failures, 忽略拉取镜像过程中的错误
–parallel, 多个镜像同时拉取
–quiet, 拉取镜像过程中不打印进度信息
docker compose restart ¶
重启项目中的服务
docker compose restart [options] [SERVICE...]
-t, –timeout TIMEOUT, 指定重启前停止容器的超时(默认为10秒)
docker compose rm ¶
删除所有(停止状态的)服务容器。推荐先执行docker compose stop命令来停止容器
docker compose rm [options] [SERVICE...]
–f, –force, 强制直接删除,包括非停止状态的容器
-v, 删除容器所挂载的数据卷
docker compose start ¶
启动已经存在的服务容器
docker compose start [SERVICE...]
docker compose run ¶
在指定容器上执行一个命令
docker compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
--在启动容器之前生成生成映像。
-d、 --分离后台运行容器并打印容器ID
--entrypoint字符串覆盖图像的入口点
-e、 --env字符串数组设置环境变量
-i、 --交互式保持STDIN打开,即使未连接。(默认为true)
-l、 --label字符串数组添加或重写标签
--name string为容器指定名称
-T、 --无TTY禁用伪TTY分配(默认:自动检测)。
--no deps不要启动链接服务。
-p、 --publish-stringArray将容器的端口发布到主机。
--quiet pull不打印进度信息的pull。
--rm容器退出时自动移除容器
--service ports在启用服务端口并映射到主机的情况下运行命令。
--使用别名使用服务的网络使用容器连接到的网络中的别名。
-u、 --user string以指定的用户名或uid运行
-v、 --volume stringArray绑定装载卷。
-w、 --workdir string容器内的工作目录
docker compose scale ¶
设置指定服务运行的容器个数
docker compose scale web=3 db=2
通过service=num的参数来设置数量
docker compose pause ¶
暂停一个服务容器
docker compose pause [SERVICE...]
docker compose uppause ¶
恢复处于暂停状态中的服务
docker compose unpause [SERVICE...]
docker compose kill ¶
通过发送sigkill信号来强制停止服务容器
docker compose kill [options] [SERVICE...]
支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号:
docker compose config ¶
验证并查看compose文件配置
docker compose config [options]
–resolve-image-digests 将镜像标签标记为摘要
-q, –quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
–services 打印服务名,一行一个
–volumes 打印数据卷名,一行一个
docker compose create ¶
为服务创建容器
docker compose create [options] [SERVICE...]
–force-recreate: 重新创建容器,即使配置和镜像没有改变,不兼容–no-recreate参数
–no-recreate: 如果容器已经存在,不需要重新创建,不兼容–force-recreate参数
–no-build: 不创建镜像,即使缺失
–build: 创建容器前,生成镜像
docker compose exec ¶
在运行中的容器执行命令
docker compose exec [options] SERVICE COMMAND [ARGS...]
-d 分离模式,后台运行命令。
–privileged 获取特权。
–user USER 指定运行的用户。
-T 禁用分配TTY,默认docker compose exec分配TTY。
–index=index, 当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,
docker compose port ¶
显示某个容器端口所映射的公共端口
docker compose port [options] SERVICE PRIVATE_PORT
```yaml
–protocol=proto, 指定端口协议,TCP(默认值)或者UDP –index=index, 如果同意服务存在多个容器,指定命令对象容器的序号(默认为1) ```
docker compose push ¶
推送服务依的镜像
docker compose push [options] [SERVICE...]
–ignore-push-failures 忽略推送镜像过程中的错误
docker compose push 和 dockr push 有什么区别 使用场景是什么
docker compose push和docker push是两个不同的命令,用于将镜像推送到镜像仓库,它们之间有一些区别和不同的使用场景。
-
docker compose push:
docker compose push命令是在Docker Compose项目的上下文中使用的。 它会遍历Docker Compose项目中的所有服务,并将每个服务的镜像推送到相应的镜像仓库。 您需要在Docker Compose文件中为每个服务指定image字段,以确定要推送的镜像名称和目标镜像仓库。 这个命令特别适用于推送Docker Compose项目中的多个服务镜像,以便在部署时一次性推送所有镜像。
-
docker push:
docker push命令是在单个Docker镜像的上下文中使用的。 它用于将单个镜像推送到镜像仓库。 您需要指定要推送的镜像的完整名称,包括镜像仓库地址、仓库名称和标签。 这个命令适用于推送单个已构建的镜像到指定的镜像仓库。
使用场景:
使用docker compose push适用于Docker Compose项目中的多个服务镜像的推送。这在需要一次性推送整个项目的镜像时非常有用,例如在部署到生产环境或共享给其他团队成员时。
使用docker push适用于单个镜像的推送。这在您只需要推送特定的镜像,或者在使用单独的Docker镜像时非常有用。