云计算核心技术Docker教程:Docker Compose yml常用配置指令简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲。 Docker Compose 默认使用文件名 docker-compose.yml,例如以下就是一个docker-compose.yml文件示例: version:指定本 yml 依从的 compose 哪个版本制定的 services:用于定义不同的应用服务,上例中分别定义了两个服务web和redis web:该 web 服务使用从 Dockerfile 当前目录中构建的镜像。然后,它将容器和主机绑定到暴露的端口 5000。此示例服务使用 Flask Web 服务器的默认端口 5000 。 redis:该 redis 服务使用 Docker Hub 的公共 Redis 映像。 docker-compose.yml包含 4 个一级 key:version、services、networks、volumes。 version 是必须指定的,而且总是位于文件的第一行。它定义了 Compose 文件格式(主要是 API)的版本。 services 用于定义不同的应用服务。上边的例子定义了两个服务:一个名为 web-fe 的 Web 前端服务以及一个名为 redis 的内存数据库服务。 networks配置容器连接的网络,默认情况下,Docker Compose 会创建 bridge 网络。 volumes 用于指引 Docker 来创建新的卷。 比较常用的配置指令: build 指定为构建镜像上下文路径: 例如 webapp 服务,指定为从上下文路径 ./dir/Dockerfile 所构建的镜像: 或者,作为具有在上下文指定的路径的对象,以及可选的 Dockerfile 和 args: context:上下文路径。 dockerfile:指定构建镜像的 Dockerfile 文件名。 args:添加构建参数,这是只能在构建过程中访问的环境变量。 labels:设置构建镜像的标签。 target:多层构建,可以指定构建哪一层。
ports 指定 Docker 将容器内(-target)的 5000 端口映射到主机(published)的 5000 端口,这意味着发送到 Docker 主机 5000 端口的流量会被转发到容器的 5000 端口。容器中的应用监听端口 5000。 image 指定容器运行的镜像。以下格式都可以: image: redis image: ubuntu:14.04 image: tutum/influxdb image: example-registry.com:4000/postgresql image: a4bc65fd # 镜像id
network_mode 设置网络模式,例如: network_mode: "bridge" network_mode: "host" network_mode: "none" network_mode: "service:[service name]" network_mode: "container:[container name/id]"
volumes 将主机的数据卷或着文件挂载到容器里。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |