跳转至

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镜像时非常有用。