12.使用Docker Compose容器编排工具

栏目: 编程工具 · 发布时间: 6年前

内容简介:通过前面的使用,我们发现从镜像启动一个容器特复杂,映射端口、守护进程、挂载目录、容器命名、特权模式等等,参数特别多。还有生产环境中需要有几十个、上百个容器,然道我们一个一个的去操作?有没有好的解决办法??文档地址:

通过前面的使用,我们发现从镜像启动一个容器特复杂,映射端口、守护进程、挂载目录、容器命名、特权模式等等,参数特别多。还有生产环境中需要有几十个、上百个容器,然道我们一个一个的去操作?有没有好的解决办法??

文档地址:

https://docs.docker.com/compo...

Docker Compose 容器编排工具,也可以认为是一个构建工具,可以配置并启动多个容器,适合复杂业务场景。

安装:

一切按照官方文档来: https://docs.docker.com/compo...

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

compose的配置文件使用yaml格式

Docker Compose 官方入门文档:

https://docs.docker.com/compo...

创建一个项目目录

mkdir composetest

cd composetest

创建一个docker-compose.yml文件,并编写下面的内容

version: "3"
services:
    web1:
        container_name: web1
        image: "centos:httpd"
        ports:
            - "8080:80"
        privileged: true
        volumes:
            - "/app/www/web1/:/var/www/html/"
        command: ['/usr/sbin/init']
    web2:
        container_name: web2
        image: "centos:httpd"
        ports:
            - "8081:80"
        privileged: true
        volumes:
            - "/app/www/web2/:/var/www/html/"
        command: ['/usr/sbin/init']

// services:定义一组服务
// web1:服务名
// container_name:容器名称
// ports:端口映射
// privileged:特权
// volumes:目录挂载

// version:代表当前使用的版本,compose经历了多个版本,每个版本的支持的参数以及一些命令是不一样的

// 关于version介绍的官方文档:https://docs.docker.com/compose/compose-file/

可以将我们编写的yaml格式的文件放入在线检查 工具 进行效验格式是否正确

yaml在线检查工具: http://www.yamllint.com

使用docker-compose启动容器

启动之前先确认是否有正在运行的容器占用了端口!!!

// 查看docker-compose帮助:docker-compose --help
// docker-compose up:创建并启动容器

docker-compose up -d

// -d 后台运行
// 更多参数帮助:docker-compose up --help

在宿主机的挂载到容器中的目录里面创建html,然后测试容器是否正常访问

echo "web1" > /app/www/web1/index.html

echo "web2" > /app/www/web2/index.html

// 访问web1
curl 127.0.0.1:8080

// 访问web2
curl 127.0.0.1:8081

不出意外的话,正常访问!

我们现在通过一条命令就可以快速创建容器并启动了

关闭运行的容器

// 默认关闭所有
docker-compose stop

// 可以指定关闭其中某个
docker-compose stop web1

删除容器

// 删除所有
docker-compose rm

// 可以指定删除其中某个
docker-compose rm web1

docker-compose的所有操作必须在docker-compose.yml文件所在目录中进行。

以后我们只需要编写compose.yml文件,就可以,不再需要每次输入大量的参数来启动一个容器,害怕输错、输漏了

文章出处: http://www.mi360.cn/articles/19


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Python

Programming Python

Mark Lutz / O'Reilly Media / 2006-8-30 / USD 59.99

Already the industry standard for Python users, "Programming Python" from O'Reilly just got even better. This third edition has been updated to reflect current best practices and the abundance of chan......一起来看看 《Programming Python》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具