我找不到什么是docker-compose文件的真实定义?
这样说是否正确?:
docker-compose文件是一个YAML文件,允许我们同时部署多个docker容器。
我想更好地解释什么是docker-compose文件
Gab*_*x0r 11
docker-compose.yml 是 docker-compose 的配置文件。
它允许同时部署、组合和配置多个 docker-container。Docker 的“规则”是将每个进程都外包给自己的 Docker 容器。
例如一个简单的 web docker-compose。你需要一个服务器、一个数据库和 PHP。所以你可以用Apache2、PHP和MySQL设置三个docker-container。
docker-compose 的优点是配置简单。您不必在 bash 中写入一大堆参数。您可以在 docker-compose.yml 中预定义它。
db:
image: mysql
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: example_db
MYSQL_USER: root
MYSQL_PASSWORD: rootpw
php:
image: php
ports:
- "80:80"
- "443:443"
volumes:
- ./SRC:/var/www/
links:
- db
Run Code Online (Sandbox Code Playgroud)
正如你在我的例子中看到的那样。我设置了端口、外部数据卷以及到另一个 docker 容器的链接。它速度快,可重复,而且不难理解。
Docker-compose是一个工具,可让您同时部署和管理多个容器。
docke-compose.yml
文件包含有关如何执行此操作的说明。
在此文件中,您指示Docker-compose例如:
Dockerfile
构建特定图像Docker-compose读取该文件并执行命令。在构建和运行单个Docker容器时
使用它代替所有可选参数。
例:
version: '2'
services:
nginx:
build: ./nginx
links:
- django:django
- angular:angular
ports:
- "80:80"
- "8000:8000"
- "443:443"
networks:
- my_net
django:
build: ./django
expose:
- "8000"
networks:
- my_net
angular:
build: ./angular2
links:
- django:django
expose:
- "80"
networks:
- my_net
networks:
my_net:
external:
name: my_net
Run Code Online (Sandbox Code Playgroud)
此示例指示Docker-compose执行以下操作:
nginx
从路径构建./nginxAngular
和django
容器(因此它们在docker网络中的IP由名称解析)80
,443
,8000
到主机然后对django
和Angular
容器进行类似的操作。
如果仅使用docker命令,则将类似于:
docker build --name nginx .
docker run --link django:django angular:angular --expose 80 443 8000 --net my_net nginx
Run Code Online (Sandbox Code Playgroud)
因此,虽然您可能不想为每个图像/容器键入所有这些选项和命令,但是您可以编写docker-compose.yml
文件,并以人类可读的格式编写所有这些指令。
(可以通过Ansible实现相同的功能)
归档时间: |
|
查看次数: |
5592 次 |
最近记录: |