非常教程

Docker 17参考手册

撰写 | Compose

控制启动顺序 | Control startup order (Compose)

您可以使用depends_on选项来控制服务启动的顺序。撰写总是依赖顺序,其中依赖性是通过确定启动容器depends_onlinksvolumes_from,和network_mode: "service:..."

但是,Compose不会等到容器“准备就绪”(无论对于您的特定应用程序而言意味着什么) - 直到它运行为止。这有一个很好的理由。

等待数据库(例如)准备就绪的问题实际上只是分布式系统的一个更大问题的一个子集。在生产中,您的数据库可能随时无法使用或移动主机。您的应用程序需要适应这些类型的故障。

为了处理这个问题,应用程序应该尝试在失败后重新建立到数据库的连接。如果应用程序重试连接,它应该最终能够连接到数据库。

最好的解决方案是在你的应用程序代码中执行这个检查,无论是在启动时,还是因任何原因丢失连接。但是,如果您不需要此级别的恢复能力,则可以使用包装脚本解决该问题:

  • 使用一个工具,如等待,dockerize或sh兼容等待。这些小包装脚本可以包含在应用程序的映像中,并将轮询给定的主机和端口,直到它接受TCP连接。例如,要使用wait-for-it.shwait-for包装服务的命令:version:“2”services:web:build:。端口: - “80:8000”depends_on: - “db”命令:“./wait-for-it.sh”,“db:5432”,“ - ”,“python”,“app.py”db: image:postgres 提示:这种第一种解决方案存在局限性; 例如,它不会验证特定服务何时准备就绪。如果您为命令添加更多参数,bash shift 带循环的命令,如下一个示例所示。
  • 或者,编写自己的包装脚本以执行更多特定于应用程序的运行状况检查。例如,您可能要等到Postgres完全准备好接受命令:#!/ bin / bash#wait-for-postgres.sh set -e host =“$ 1”shift cmd =“$ @”,直到psql -h “$ host”-U“postgres”-c'\ l'; do>&2 echo“Postgres is unavailable - sleeping”sleep 1 done>&2 echo“Postgres正在执行 - 执行命令”exec $ cmd您可以像上例那样使用它作为包装脚本,方法是:command:“./ wait-for-postgres.sh“,”db“,”python“,”app.py“

撰写文件

  • 安装Compose
  • 开始使用Django
  • 开始使用Rails
  • 开始使用WordPress
  • 命令行参考
  • 撰写文件参考

documentation, docs, docker, compose, startup, order

撰写 | 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.Django and PostgreSQL (Compose)
8.Docker堆栈和分布式应用程序包 | Docker stacks and distributed application bundles (Compose)
9.docker-compose构建 | docker-compose build
10.docker-compose 束 | docker-compose bundle
11.docker-compose配置 | docker-compose config
12.docker-compose创建 | docker-compose create
13.docker-compose down
14.docker-compose事件 | docker-compose events
15.docker-compose exec
16.docker-compose助手 | docker-compose help
17.docker-compose图像 | docker-compose images
18.docker-compose kill
19.docker-compose logs
20.docker-compose暂停 | docker-compose pause
21.docker-compose port
22.docker-compose ps
23.docker-compose pull
24.docker-compose push
25.docker-compose重启 | docker-compose restart
26.docker-compose rm
27.docker-compose运行 | docker-compose run
28.docker-compose 规模 | docker-compose scale
29.docker-compose开始 | docker-compose start
30.docker-compose结束 | docker-compose stop
31.docker-compose顶部 | docker-compose top
32.docker-compose 取消暂停 | docker-compose unpause
33.docker-compose up
34.环境文件 | Environment file (Compose)
35.Compose中的环境变量 | Environment variables in Compose
36.Compose中的扩展服务 | Extend services in Compose
37.常见问题 | Frequently asked questions (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