Docker系列五:docker-compose利器

Docker为我们提供了虚拟化的快捷方法,但是随着微服务大行其道的时候,一个一个去编辑Dockerfile有点太麻烦了,docker-compose就应运而生了。docker-compose提供了多个微服务编排的能力,并提供了运行时环境配置,同时启动、停止的方法,十分的方便。

  1. docker-compose的安装:

离线安装:地址https://github.com/docker/compose/releases/,下载相应系统版本,移动到/usr/local/bin/

或使用curl工具,

curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose

增加运行权限:

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

使用pip安装:

apt-get isstall epel-release
apt-get install python-pip
pip install docker-compose

2.docker-compose文档格式与docker的版本对应关系

Compose file format compatibility matrix

Compose file formatDocker Engine
11.9.0+
2.01.10.0+
2.11.12.0+
2.2, 3.0, 3.1, 3.21.13.0+
2.3, 3.3, 3.4, 3.517.06.0+
2.417.12.0+
3.618.02.0+
3.718.06.0+

3.docker-compose常用的命令

docker-compose命令常用选项:

--verbose:输出更多的调试信息

--version:查看compose的版本

-f --file FILE:使用特定的compose模板文件,默认为docker-compose.yml。

-p --project-name NAME 指定项目名称,默认使用目录名称。

常用命令:

build:构建或重建服务

ps:查看已经启动的服务状态       

kill:停止某个服务、杀掉容器       

logs:可以查看某个服务的log、显示容器的输出内容       

port:打印绑定的public port(开放端口)        

pull:拉取服务镜像      

up:启动yml定义的所有服务     

stop:停止yml中定义的所有服务       

start:启动被停止的yml中的所有服务        

kill:强行停止yml中定义的所有服务        

rm:删除yml中定义的所有服务      

restart:重启yml中定义的所有服务        

scale:设置服务的容器数目

run:运行一个一次性命令

4.docker-compose.yml常用的配置:

docker-compose中YAML常用的字段:

字段

描述

build

  dockerfile

  context

指定dockerfile文件名

构建镜像上下文路径

image指定镜像
command执行命令,覆盖默认命令
container_name指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale
deploy 指定部署和运行服务相关配置,只能在Swarm模式使用
environment添加环境变量
networks加入网络,引用顶级networks下条目
ports暴漏端口,与-p相同,但端口不能低于60
volumes挂载宿主机路径或命名卷在顶级volumes定义卷名称
restart重启策略,默认no,always|on-failurel|unless-stopped
hostname容器主机名

5.docker-compose.yml文件的具体写法(如ELK6.5.4)

version:  '3.7'
services:
  logstash:
    image:  logstash:6.5.4
    container_name: logstash
    environment:
      LS_JAVA_OPTS:  "-Xmx256m -Xms256m"
    volumes:
      -  ./config/pipeline/:/usr/share/logstash/pipeline/
      -  ./config/logstash/:/usr/share/logstash/config/
    ports:
      -  "5044:5044"
      -  "9600:9600"
    links:
      -  elasticsearch
  elasticsearch:
    image: elasticsearch:6.5.4
    ports:
      - "9200:9200"
      - "9300:9300"
    container_name:  elasticsearch
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.type=single-node"
    volumes:
      - ./esdata:/usr/share/elasticsearch/data
  kibana:
    image: kibana:6.5.4
    container_name:  kibana
    links:
      - elasticsearch
    ports:
      - "5601:5601"

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值