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

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

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

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

文档地址:

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


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

查看所有标签

猜你喜欢:

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

进化式运营:从互联网菜鸟到绝顶高手

进化式运营:从互联网菜鸟到绝顶高手

李少加 / 电子工业出版社 / 2016-11 / 59

互联网运营作为一个新兴的岗位,一方面它是企业的核心岗职,身负重任,另一方面,又由于其短暂的历史,缺乏成熟体系的工作方法论,而目前业界主流的运营方法却是从企业视角出发,存在极大的改进空间。 《进化式运营:从互联网菜鸟到绝顶高手》作者基于自身十年的互联网洞察、实践经验,并融合了信息论、心理学、经济学、管理学、甚至包括生态学、进化论等跨学科跨学业的知识,从无到有地构建了一套全新的互联网运营体系:基......一起来看看 《进化式运营:从互联网菜鸟到绝顶高手》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具