网站首页 > 博客文章 正文
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
将主机的数据卷或着文件挂载到容器里。
本文源自TechWeb.com.cn
猜你喜欢
- 2024-09-17 树莓派5安装docker、docker compose、gitlab-ce及配置
- 2024-09-17 11-docker系列-docker之compose安装和相关命令
- 2024-09-17 Docker-compose解析(docker-compose详解)
- 2024-09-17 docker-compose安装(docker-compose安装nginx)
- 2024-09-17 如何在Docker Compose中设置主机名
- 2024-09-17 docker系列:docker-compose用法详解
- 2024-09-17 Docker Compose搭建MySQL主从复制集群
- 2024-09-17 这个开源项目为编写各种Docker-Compose提供了样本
- 2024-09-17 一文掌握 Docker Compose 命令(docker—compose)
- 2024-09-17 通过Docker开源项目Compose实现对 Docker 容器集群的快速编排
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)