非常教程

Docker 17参考手册

撰写 | Compose

常见问题 | Frequently asked questions (Compose)

如果你在这里没有看到你的问题,请随时放下#docker-compose在 freenode IRC 上投递并询问社区。

我可以控制服务启动顺序吗?

是 - 请参阅控制启动顺序。

为什么我的服务需要10秒才能重新创建或停止?

编写停止尝试,通过发送SIGTERM.然后它等待一个默认超时时间为10秒超时后,SIGKILL被送到容器里强行杀死它。如果您正在等待此超时,这意味着当容器收到SIGTERM信号。

已经有很多关于这个问题的文章处理信号装在容器里。

若要解决此问题,请尝试以下操作:

  • 确保使用的 JSON 形式CMDENTRYPOINT在你的文件里。例如,使用["program", "arg1", "arg2"]"program arg1 arg2"使用字符串窗体使 Docker 使用bash不能正确处理信号。Composet 总是使用 JSON 表单,所以如果您覆盖了撰写文件中的命令或入口点,请不要担心。
  • 如果可以,修改正在运行的应用程序,为其添加显式信号处理程序SIGTERM.
  • 设置为stop_signal应用程序知道如何处理的信号:web:build:,stop_signal:SIGINT.
  • 如果您无法修改应用程序,请将该应用程序包装在轻量级 init 系统(如 s6)或信号代理(如 dumb-init 或 tini )中。这些包装都会由SIGTERM妥善处理。

如何在同一主机上运行多个撰写文件副本?

组合使用项目名称为项目的所有容器和其他资源创建唯一标识符。若要运行项目的多个副本,请使用-p命令行选项或者COMPOSE_PROJECT_NAME环境变量...

uprun以及start之间有什么区别?

通常情况下,你想使用docker-compose up。使用up启动或重新启动在定义的所有服务docker-compose.yml。在默认的“附加”模式下,您将看到所有容器中的所有日志。在“分离”模式(-d)中,Compose 在启动容器后退出,但容器继续在后台运行。

docker-compose run命令用于运行“一次性”或“临时”任务。它需要您想运行的服务名称,并且仅启动正在运行的服务所依赖的服务的容器。使用run运行测试或执行管理任务,如删除或添加数据的数据量的容器。run命令的作用就像docker run -ti打开容器的交互式终端,并返回与容器中进程的退出状态匹配的退出状态。

docker-compose start命令仅用于重新启动之前创建但已停止的容器。它从不创建新的容器。

我可以用json代替YAML作为我的撰写文件吗?

是 YAML 是 json 的超集。所以任何 JSON 文件都应该是有效的 YAML 。若要在撰写时使用 JSON 文件,请指定要使用的文件名,例如:

docker-compose -f docker-compose.json up

我是否应该将我的代码包含在COPY/ADD还是一卷书?

您可以使用COPY中的ADD指令将代码添加到图像中Dockerfile。如果您需要将代码与 Docker 映像一起重定位,例如在将代码发送到其他环境(生产,CI 等)时,这非常有用。

您应该使用volume如果您想要对代码进行更改,并且看到它们立即被反映出来,例如,当您正在开发代码,并且您的服务器支持热代码重新加载或活动重新加载时。

在某些情况下,您可能会同时使用这两种方法。您可以使用COPY,并使用volume在开发过程中,在撰写文件中包含来自主机的代码。卷覆盖图像的目录内容。

在哪里可以找到撰写文件的示例?

github 上有很多编写文件的例子。

撰写文件

  • 安装组合
  • 从Django开始
  • 从Rails开始
  • 从WordPress开始
  • 命令行引用
  • 合成文件引用

documentation, docs, docker, compose, faq

撰写 | 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.开始 | Getting started (Compose)
39.安装Compose | Install Compose
40.链接环境变量(不建议使用) | Link environment variables (deprecated) (Compose)
41.Compose网络 | Networking in Compose
42.Docker Compose总览 | Overview of Docker Compose
43. docker-compose CLI总览 | Overview of docker-compose CLI
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