资讯专栏INFORMATION COLUMN

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

gaosboy / 1560人阅读

摘要:还有生产环境中需要有几十个上百个容器,然道我们一个一个的去操作有没有好的解决办法文档地址容器编排工具,也可以认为是一个构建工具,可以配置并启动多个容器,适合复杂业务场景。

</>复制代码

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

文档地址:

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

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

安装:

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

</>复制代码

  1. 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
  2. sudo chmod +x /usr/local/bin/docker-compose

compose的配置文件使用yaml格式

Docker Compose 官方入门文档:

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

创建一个项目目录

</>复制代码

  1. mkdir composetest
  2. cd composetest

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

</>复制代码

  1. version: "3"
  2. services:
  3. web1:
  4. container_name: web1
  5. image: "centos:httpd"
  6. ports:
  7. - "8080:80"
  8. privileged: true
  9. volumes:
  10. - "/app/www/web1/:/var/www/html/"
  11. command: ["/usr/sbin/init"]
  12. web2:
  13. container_name: web2
  14. image: "centos:httpd"
  15. ports:
  16. - "8081:80"
  17. privileged: true
  18. volumes:
  19. - "/app/www/web2/:/var/www/html/"
  20. command: ["/usr/sbin/init"]
  21. // services:定义一组服务
  22. // web1:服务名
  23. // container_name:容器名称
  24. // ports:端口映射
  25. // privileged:特权
  26. // volumes:目录挂载
  27. // version:代表当前使用的版本,compose经历了多个版本,每个版本的支持的参数以及一些命令是不一样的
  28. // 关于version介绍的官方文档:https://docs.docker.com/compose/compose-file/

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

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

使用docker-compose启动容器

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

</>复制代码

  1. // 查看docker-compose帮助:docker-compose --help
  2. // docker-compose up:创建并启动容器
  3. docker-compose up -d
  4. // -d 后台运行
  5. // 更多参数帮助:docker-compose up --help

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

</>复制代码

  1. echo "web1" > /app/www/web1/index.html
  2. echo "web2" > /app/www/web2/index.html
  3. // 访问web1
  4. curl 127.0.0.1:8080
  5. // 访问web2
  6. curl 127.0.0.1:8081

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

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

关闭运行的容器

</>复制代码

  1. // 默认关闭所有
  2. docker-compose stop
  3. // 可以指定关闭其中某个
  4. docker-compose stop web1

删除容器

</>复制代码

  1. // 删除所有
  2. docker-compose rm
  3. // 可以指定删除其中某个
  4. docker-compose rm web1

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

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27830.html

相关文章

  • Docker 1.12的哪些特性使它更像 kubernetes?

    摘要:本文涵盖了中的六大新特性内置命令服务发现自愈功能安全负载均衡滚动升级,相关的使用文档和视频链接也都包含在里面。同时,内部负载均衡要求一个可用的容器。现在开箱即用的负载均衡,上公开暴露的端口在所有节点都是可以访问的。 Docker 1.12版本最近刚刚发布,这篇文章对它的新特性进行了概述和对比描述。本文涵盖了 Docker 1.12 中的六大新特性:内置 swarm命令、服务发现、自愈功...

    chaos_G 评论0 收藏0
  • Docker技术浅谈:私有化部署的优势以及在顶象内部的应用实践

    摘要:本文主要和大家分享下容器技术和顶象风控系统私有化部署的优势以及容器技术在顶象内部的应用实践。容器技术在顶象内部的应用目前容器技术已在顶象内部大规模推行,所有应用均通过容器实现部署交付与更新。 顶象全景式业务安全风控体系基于新一代风控体系构建,并采用Docker技术进行私有云和公有云部署。本文主要和大家分享下Docker容器技术和顶象风控系统私有化部署的优势以及Docker容器技术在顶象...

    andong777 评论0 收藏0
  • docker到istio之二 - 使用compose部署应用

    摘要:使用导出端口,使用挂载数据卷。清理应用使用一键清理应用总结已经实现了容器扩容自动挡更直观的控制容器启动顺序及依赖。从部署到编排,单字面理解,看起来能够维护的容器量都增长了。推荐应用包括多个服务,推荐部署方式就是。前言 容器化,云原生越演越烈,新概念非常之多。信息爆炸的同时,带来层层迷雾。我尝试从扩容出发理解其脉路,经过实践探索,整理形成一个入门教程,包括下面四篇文章。 容器化实践之路-从d...

    yy13818512006 评论0 收藏0
  • 如何用Docker编排容器

    摘要:应用被绑定到虚拟机或者容器并且成为主要的管理元素。采用的方法是他们正在使用的一系列实现容器自动化的工具,和。,使用相同的作为标准引擎实例,被设计用来提供容器可扩展的环境。 欢迎来到后硬件时代。在这个时代我们把容器或者是虚拟机迁移到我们需要的地方,而不需要考虑容器或者虚拟机。这里我们介绍一些新的Docker工具来做这份工作。 构建下一代应用是一回事,管理和运行它们是另一回事。 showI...

    xialong 评论0 收藏0

发表评论

0条评论

gaosboy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<