docker-compose单机版的容器编排

1.什么是docker-compose

  • docker-compose用来在单机上编排容器(定义和运行多个容器,使容器能互通)
  • docker-compose将所管理的容器分为3层结构:project  service  container
  • docker-compose.yml组成一个project,project里包括多个service,每个service定义了容器运行的镜像(或构建镜像),网络端口,文件挂载,参数,依赖等,每个service可包括同一个镜像的多个容器实例。即 project 包含 service ,service 包含 container

 

2.安装docker-compose

#更新epel源
[root@docker01 zabbix]# curl -o  /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#安装docker-compose
[root@docker01 zabbix]# yum install docker-compose -y(需要epel源)

#查看是否安装成功
[root@docker01 zabbix]# docker-compose -v
docker-compose version 1.18.0, build 8dd22a9

 

3.docker-compose的命令使用

docker-compose -h 查看所有可用的命令
docker-compose build -h 查看某个命令的使用帮助

build              构建/重新构建所有镜像,比如你原先mysql镜像是5.5,现在要基于5.7的镜像,就需要重新构建
bundle             生成一个dab集群配置文件
config             验证和查看docker-compose配置文件
create             创建服务,但是不启动服务【已弃用】,使用 docker-compose up --no-start 替代
down               停止并移除所有容器和网络配置
events             实时打印容器接收到的事件,搭配--json选项输出更加美观
exec               进入一个容器运行命令 后面一般搭配 /bin/bash使用
help               获取帮助信息
images             显示当前docker-compose.yml中用到的镜像列表
kill               杀死一个容器
logs               产看容器的日志输出
pause              暂停一个服务
port               查看一个服务的端口和宿主机端口的映射关系 
ps                 列出所有的容器以及状态
pull               和docker pull 一样  从docker hub上拉取一个镜像到本地
push               同 docker push 推送一个镜像到docker hub
restart            重启所有服务
rm                 移除已停止的服务
run                在一个容器中执行一次性命令
scale              设置一个服务要启动几个实例【已废弃】,使用docker-compose up --scale nginx=2 替代
start              启动所有无福或某个服务
stop               停止所有服务或某个服务
top                在每个容器中执行top命令,并返回结果信息
unpause            把暂停的服务恢复运行
up                 创建并启动服务
version            查看docker-compose版本信息

 

4.docker-compose例子

创建docker-compose文件(命名必须为docker-compose.yaml或者docker-compose.yml)

version: '3'                      #版本号——兼容老版本

services:                         # 定义几个容器,就需要几个services
   mysql-server:                  #  db服务容器
     image: mysql:5.7             # 使用的镜像及版本
     restart: always              # 设置容器开机自启
     volumes:                     # 持久化数据库使用的数据卷
       - /data/db_data:/var/lib/mysql   # 宿主机目录:容器要持久化的目录
     environment:
       MYSQL_ROOT_PASSWORD: root_pwd
       MYSQL_DATABASE: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix_pwd
     command: --character-set-server=utf8

   zabbix-java-gateway:
     image: zabbix/zabbix-java-gateway:latest
     restart: always

   zabbix-server:
     depends_on:                        # 依赖的服务
       - mysql-server
     image: zabbix/zabbix-server-mysql:latest
     restart: always
     environment:
       DB_SERVER_HOST: mysql-server
       MYSQL_DATABASE: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix_pwd
       MYSQL_ROOT_PASSWORD: root_pwd
       ZBX_JAVAGATEWAY: zabbix-java-gateway
     ports:                                #映射的端口号可以指定
       - "10051:10051"                     #不指定为随机端口映射 

   zabbix-web-nginx-mysql:
     depends_on:
       - zabbix-server
     image: zabbix/zabbix-web-nginx-mysql:latest
     ports:
       - "80:80"
     restart: always
     environment:
       DB_SERVER_HOST: mysql-server
       MYSQL_DATABASE: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix_pwd
       MYSQL_ROOT_PASSWORD: root_pwd

/var/lib/docker/volumes/  宿主机持久化目录

docker-compose up -d 启动服务(-d 后台启动)

docker-compose down 停止服务

 

5.检查是否成功

#查看前台启动的输出日志
zabbix-server_1           | 2020-02-29 08:30:40,811 INFO success: zabbix-server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
zabbix-server_1           | 2020-02-29 08:30:40,811 INFO success: zabbix-server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

访问zabbix首页查看

docker-compose单机版的容器编排

赞赏

微信赞赏支付宝赞赏

Docker

Docker私有仓库docker-registry

2020-3-5 7:46:35

Docker

docker容器之间互联

2020-3-5 9:05:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索