docker-compose入门示例

docker-compose入门示例

以下将启动一个zabbix_server端作为compose的使用案例

docker命令启动方式

启动mysql

[root@wshile zabbix]# docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix" \
      -e MYSQL_ROOT_PASSWORD="zabbix" \
      -d mysql:5.7  \
--character-set-server=utf8 --collation-server=utf8_bin

 启动zabbix_server

[root@wshile zabbix]# docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix" \
      -e MYSQL_ROOT_PASSWORD="zabbix" \
      --link mysql-server:mysql \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:latest

 启动一个nginx作为web

[root@wshile zabbix]# docker run --name zabbix-web-nginx-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix" \
      -e MYSQL_ROOT_PASSWORD="zabbix" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 8080:8080 \
      -d zabbix/zabbix-web-nginx-mysql:latest

 这时候可以通过本机ip+端口进行访问。

docker-compose方式启动上面的服务

安装docker-compose

[root@wshile zabbix]# yum -y install epel-release
[root@wshile zabbix]# yum -y install python-pip
[root@wshile zabbix]# pip install --upgrade pip
[root@wshile zabbix]# pip install setuptools==33.1.1
[root@wshile zabbix]# pip install docker-compose
[root@wshile zabbix]# pip uninstall urllib3
[root@wshile zabbix]# pip uninstall chardet
[root@wshile zabbix]# pip install requests
[root@wshile zabbix]# docker-compose version

 配置docker-compose.yaml文件

version: '3'
services:
  mysql-server:
    image: mysql:5.7
    container_name: mysql-server
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_ROOT_PASSWORD: zabbix

  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server-mysql
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_ROOT_PASSWORD: zabbix
    ports:
      - '10051:10051'
    links:
      - mysql-server
    depends_on:           # 以依赖循序启动
      - mysql-server

  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-apache-mysql
    container_name: zabbix-web-nginx-mysql
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      MYSQL_ROOT_PASSWORD: zabbix
    ports:
      - '8080:8080'
      - '443:443'
    links:
      - mysql-server
      - zabbix-server-mysql
    depends_on:
      - mysql-server
      - zabbix-server-mysql

 启动服务

# 使用docker-compose启动容器会默认创建一个bridge网络
[root@wshile zabbix]# docker-compose up -d
[root@wshile zabbix]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
80c42b87d6f7        bridge              bridge              local
bd710e00469e        host                host                local
f8086404d8d7        none                null                local
ae40868e7e89        zabbix_default      bridge              local

 同样使用以上方式访问服务,区别于使用bridge模式的桥接网卡不同。

 

posted @ 2020-05-31 16:19  Wshile  阅读(593)  评论(1编辑  收藏  举报