Docker CLI docker compose常用命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker compose常用命令。

1、docker compose简介

docker compose可以使用docker compose [-f ... ] [options] [COMMAND] [ARGS... ],以在Docker容器中构建和管理多个服务。也就是通过一个配置文件来管理多个Docker容器。

参考文档:https://docs.docker.com/engine/reference/commandline/compose/

2、docker compose语法

docker compose COMMAND

3、 docker compose命令

1)使用-f指定一个或多个组合文件的名称和路径

可以提供多个-f配置文件。当提供多个文件时,Compose会将它们组合成一个单独的配置。Compose会按照你提供配置文件的顺序构建配置文件。后续的文件会覆盖前一个文件,并将其添加到前一个文件中。

docker compose -f docker-compose.yml -f docker-compose.admin.yml run backup_db

docker-compose.yml:

services:
  webapp:
    image: examples/web
    ports:
      - "8000:8000"
    volumes:
      - "/data"

docker-compose.admin.yml也指定了相同的服务,任何匹配的字段都会覆盖前一个文件。新值添加到webapp服务配置中:

services:
  webapp:
    build: .
    environment:
      - DEBUG=1

2)指定单个Compose文件的路径

docker compose -f ~/sandbox/rails/compose.yaml pull db

3)使用-p指定项目名称

每个配置都有一个项目名。如果提供-p标志,则可以指定项目名称。如果不指定该标志,Compose将使用当前目录名。项目名称也可以通过COMPOSE_PROJECT_NAME环境变量设置。

docker compose -p my_project ps -a
NAME                 SERVICE    STATUS     PORTS
my_project_demo_1    demo       running
docker compose -p my_project logs
demo_1  | PING localhost (127.0.0.1): 56 data bytes
demo_1  | 64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.095 ms

4)使用配置文件启用可选服务

调用docker compose --profile frontend up将使用profile 启动frontend服务,而不使用任何指定的profile启动服务。也可以启用多个配置文件,例如,使用docker compose --profile frontend --profile debug up 配置文件 frontenddebug会被启用。

配置文件也可以通过COMPOSE_PROFILES环境变量设置。

5)设置环境变量

可以为各种docker compose选项设置环境变量,包括-f-p--profiles标记。

设置COMPOSE_FILE环境变量相当于传递-f标记,COMPOSE_PROJECT_NAME环境变量相当于传递-p标记,而COMPOSE_PROFILES环境变量相当于传递--profiles标记。

如果在命令行中显式设置了标记,则忽略相关的环境变量。

将环境变量COMPOSE_IGNORE_ORPHANS设置为true将停止docker compose检测项目的孤立的容器。

4、选项说明

名称, 简称

默认

描述

--ansi

auto

控制何时打印ANSI控制字符

("never"|"always"|"auto")

--compatibility

以向后兼容模式运行compose

--env-file

指定另一个环境变量文件。

--file,-f

compose配置文件

--no-ansi

不要打印ANSI控制字符(已弃用)

--parallel

-1

控制最大并行度,-1表示无限

--profile

指定要启用的配置文件

--project-directory

指定另一个工作目录

(默认:第一个指定的Compose文件的路径)

--project-name

,

-p

项目名称

--verbose

显示更多输出

--version

,

-v

显示Docker Compose的版本信息

--workdir

弃用!请使用--project-directory。

指定另一个工作目录

(默认:第一个指定的Compose文件的路径)

5、子命令

命令

描述

docker compose build

构建或重建服务

docker compose convert

将compose文件转换为平台的规范格式

docker compose cp

在服务容器和本地文件系统之间复制文件/文件夹

docker compose create

为服务创建容器

docker compose down

停止并移除容器,网络

docker compose events

从容器中接收实时事件。

docker compose exec

在正在运行的容器中执行命令。

docker compose images

列出容器使用的镜像

docker compose kill

强制停止服务容器。

docker compose logs

查看容器的输出

docker compose ls

运行compose项目的列表

docker compose pause

暂停服务

docker compose port

输出端口绑定的公共端口。

docker compose ps

列出容器列表

docker compose pull

拉取服务镜像

docker compose push

推送服务镜像

docker compose restart

重启服务容器

docker compose rm

移除已停止的服务容器

docker compose run

在服务上运行一次性命令。

docker compose start

开始服务

docker compose stop

停止服务

docker compose top

显示正在运行的进程

docker compose unpause

取消暂停的服务

docker compose up

创建并启动容器

docker compose version

显示Docker Compose的版本信息

推荐阅读
cjavapy编程之路首页