在线文档教程
Docker 17
撰写 | Compose

docker-compose CLI总览 | Overview of docker-compose CLI

docker-compose CLI概述

此页面提供docker-compose命令的使用信息。

命令选项概述和帮助

您也可以通过docker-compose --help从命令行运行来查看此信息。

Define and run multi-container applications with Docker. Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker-compose -h|--help Options: -f, --file FILE Specify an alternate Compose file (default: docker-compose.yml) -p, --project-name NAME Specify an alternate project name (default: directory name) --verbose Show more output --no-ansi Do not print ANSI control characters -v, --version Print version and exit -H, --host HOST Daemon socket to connect to --tls Use TLS; implied by --tlsverify --tlscacert CA_PATH Trust certs signed only by this CA --tlscert CLIENT_CERT_PATH Path to TLS certificate file --tlskey TLS_KEY_PATH Path to TLS key file --tlsverify Use TLS and verify the remote --skip-hostname-check Don't check the daemon's hostname against the name specified in the client certificate (for example if your docker host is an IP address) --project-directory PATH Specify an alternate working directory (default: the path of the Compose file) Commands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file 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二进制,docker-compose [-f <arg> ...] [options] [COMMAND] [ARGS ...]在Docker容器中构建和管理多个服务。

使用-f指定名称和一个或多个文件撰写路径

使用该-f标志来指定Compose配置文件的位置。

指定多个撰写文件

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

例如,请考虑以下命令行:

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

docker-compose.yml文件可能会指定一项webapp服务。

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

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

webapp: build: . environment: - DEBUG=1

使用-f和 - (破折号)作为文件名从stdin读取配置。 当使用stdin时,配置中的所有路径都与当前工作目录相关。

-f标志是可选的。 如果您不在命令行中提供此标志,则Compose将遍历工作目录及其父目录,以查找docker-compose.yml和docker-compose.override.yml文件。 您必须至少提供docker-compose.yml文件。 如果两个文件都存在于相同的目录级别,则Compose会将这两个文件组合到一个配置中。

docker-compose.override.yml除了docker-compose.yml文件中的值之外,文件中的配置将被应用。

指定单个撰写文件的路径

您可以使用-f标志来指定不在当前目录中的Compose文件的路径,无论是从命令行还是通过在shell或环境文件中设置COMPOSE_FILE环境变量。

有关在命令行中使用-f选项的示例,假设您正在运行Compose Rails示例,并在名为sandbox / rails的目录中包含docker-compose.yml文件。 您可以使用像docker-compose pull这样的命令,通过使用-f标志从任何地方获取db服务的postgress映像,如下所示:docker-compose -f〜/ sandbox / rails / docker-compose.yml pull db

以下是完整的示例:

$ docker-compose -f ~/sandbox/rails/docker-compose.yml pull db Pulling db (postgres:latest)... latest: Pulling from library/postgres ef0380f84d05: Pull complete 50cf91dc1db8: Pull complete d3add4cd115c: Pull complete 467830d8a616: Pull complete 089b9db7dc57: Pull complete 6fba0a36935c: Pull complete 81ef0e73c953: Pull complete 338a6c4894dc: Pull complete 15853f32f67c: Pull complete 044c83d92898: Pull complete 17301519f133: Pull complete dcca70822752: Pull complete cecf11b8ccf3: Pull complete Digest: sha256:1364924c753d5ff7e2260cd34dc4ba05ebd40ee8193391220be0f9901d4e1651 Status: Downloaded newer image for postgres:latest

使用-p指定项目名称

每个配置都有一个项目名称。如果你提供一个-p标志,你可以指定一个项目名称。如果您不指定标志,Compose将使用当前目录名称。另请参阅COMPOSE_PROJECT_NAME环境变量。

设置环境变量

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

例如,COMPOSE_FILE环境变量与该-f标志相关,并且COMPOSE_PROJECT_NAME环境变量与该-p标志相关。

另外,您可以在环境文件中设置其中一些变量。

下一步:

  • CLI环境变量