前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker Compose 部署服务

Docker Compose 部署服务

作者头像
老七Linux
发布2018-05-31 10:55:24
7180
发布2018-05-31 10:55:24
举报
需求分析:

假如现在我们手里有很多容器,每个容器对应每个服务,有nginx容器,redis容器,mysql容器等。现在我们需要批量化的去管理,批量启动,停止,重启等操作!当然除了之前我写了一个脚本,如何不需要脚本去控制呢?

docker compose可以方便我们快捷高效地管理容器的启动、停止、重启等操作,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像、数据卷、网络模式、监听端口等信息。我们可以在一个compose文件中定义一个多容器的应用(比如jumpserver),然后通过该compose来启动这个应用。

安装compose方法如下

代码语言:javascript
复制
curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod 755 !$

docker-compose version 查看版本信息
代码语言:javascript
复制
Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。

Version 2支持更多的指令。Version 1没有声明版本默认是"version 1"。Version 1将来会被弃用。

定义一个docker compose 管理器

代码语言:javascript
复制
[[email protected] ~]# vim docker-compose.yml

version: "2"
services:
  app1:
    image: centos6_x64 
    ports:
      - "8080:80"
    networks:
      - "net1"
    volumes:
      - /data/:/data
  app2:
    image: centos_nginx_n
    networks:
      - "net2"
    volumes:
      - /data/:/data1
    entrypoint: tail -f /etc/passwd
networks:
  net1:
    driver: bridge
  net2:
    driver: bridge

详解:

代码语言:javascript
复制
version: "2"    //使用2版本
services:       //相关容器或者镜像操作
  app1:         //app1对应的是容器1的信息
    image: centos6_x64     //images的名字
    ports:          //映射端口
      - "8080:80"       //映射宿主机8080对应容器的80端口
    networks:       //网络(默认是bridge模式)
      - "net1"      //下面定义的net1(要是需要使用pipwork怎么办? 定义none即可)
    volumes:        //-v的参数指定
      - /data/:/data        //目录映射
  app2:         //定义第2个容器信息
    image: centos_nginx_n
    networks:
      - "net2"
    volumes:
      - /data/:/data1
    entrypoint: tail -f /etc/passwd     //还是老问题BUG 为了不让执行后关闭,我们使用这条命令
networks:
  net1:     //如上定义的
    driver: bridge      //定义网络模式
  net2:
    driver: bridge

检查测试:

代码语言:javascript
复制
//启动容器
[[email protected] ~]# docker-compose up -d
Recreating root_app2_1 ... 
Recreating root_app2_1
Creating root_app1_1 ... 
Recreating root_app2_1 ... done

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
d86e221ddd81        centos_vim          "tail -f /etc/passwd"    53 seconds ago       Up 52 seconds                              root_app2_1
222a93fb1064        centos_nginx_n      "/bin/sh -c '/usr/..."   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   root_app1_1

查看docker-compose 帮助

代码语言:javascript
复制
docker-compose --help

关于docker-compose语法的参考文档 http://www.web3.xin/index/article/182.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/03/17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求分析:
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档