非常教程

Docker 17参考手册

撰写 | Compose

docker-compose CLI总览 | Overview of 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环境变量
  • 在文件中声明默认的环境变量

撰写 | Compose相关

1.关于版本和升级 | About versions and upgrading (Compose)
2.ASP.NET Core + SQL Server on Linux (Compose)
3.CLI环境变量 | CLI environment variables (Compose)
4.命令行完成 | Command-line completion (Compose)
5.组成 | Compose
6.组合命令行参考 | Compose command-line reference
7.控制启动顺序 | Control startup order (Compose)
8.Django and PostgreSQL (Compose)
9.Docker堆栈和分布式应用程序包 | Docker stacks and distributed application bundles (Compose)
10.docker-compose构建 | docker-compose build
11.docker-compose 束 | docker-compose bundle
12.docker-compose配置 | docker-compose config
13.docker-compose创建 | docker-compose create
14.docker-compose down
15.docker-compose事件 | docker-compose events
16.docker-compose exec
17.docker-compose助手 | docker-compose help
18.docker-compose图像 | docker-compose images
19.docker-compose kill
20.docker-compose logs
21.docker-compose暂停 | docker-compose pause
22.docker-compose port
23.docker-compose ps
24.docker-compose pull
25.docker-compose push
26.docker-compose重启 | docker-compose restart
27.docker-compose rm
28.docker-compose运行 | docker-compose run
29.docker-compose 规模 | docker-compose scale
30.docker-compose开始 | docker-compose start
31.docker-compose结束 | docker-compose stop
32.docker-compose顶部 | docker-compose top
33.docker-compose 取消暂停 | docker-compose unpause
34.docker-compose up
35.环境文件 | Environment file (Compose)
36.Compose中的环境变量 | Environment variables in Compose
37.Compose中的扩展服务 | Extend services in Compose
38.常见问题 | Frequently asked questions (Compose)
39.开始 | Getting started (Compose)
40.安装Compose | Install Compose
41.链接环境变量(不建议使用) | Link environment variables (deprecated) (Compose)
42.Compose网络 | Networking in Compose
43.Docker Compose总览 | Overview of Docker Compose
44.快速开始:Compose和WordPress | Quickstart: Compose and WordPress
45.Rails and PostgreSQL (Compose)
46.Compose的简单应用 | Sample apps with Compose
47.Compose在产品中的使用 | Using Compose in production
48.Using Compose with Swarm
49.版本1 | Version 1 (Compose)
50.版本2 | Version 2 (Compose)
51.版本3 | Version 3 (Compose)
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06