docker-compose搭建zabbix环境

新建一个文件夹,如test,在test文件夹下创建docker-compose.yaml文件,内容如下

version: "3"
services:
  zabbix-mysql:
    image: mysql/mysql-server:5.7.22
    container_name: zabbix-mysql
    ports:
      - '3306:3306'
    environment:
      - MYSQL_ROOT_PASSWORD="123456"
      - MYSQL_USER=root
      - MYSQL_PASSWORD="123456"
      - MYSQL_DATABASE=zabbix
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./var/lib/mysql:/var/lib/mysql:rw
      - ./etc/mysql/my.cnf:/etc/mysql/my.cnf:rw
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      network_zabbix:
        ipv4_address: 192.168.137.136
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    deploy:
      resources:
        limits:
          cpus: '0.70'
          memory: 1G
        reservations:
          cpus: '0.5'
          memory: 512M
  zabbix-web-apache-mysql:
    image: zabbix/zabbix-web-apache-mysql:centos-latest
    container_name: zabbix-web-apache-mysql
    environment:
      - DB_SERVER_HOST=zabbix-mysql
      - MYSQL_USER=root
      - MYSQL_PASSWORD="123456"
      - ZBX_SERVER_HOST=zabbix-server-mysql
      - PHP_TZ=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
    ports:
      - '80:80'
      - '443:443'
    links:
      - zabbix-mysql
      - zabbix-server-mysql
    depends_on:
      - zabbix-mysql
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      network_zabbix:
        ipv4_address: 192.168.137.108
  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:centos-latest
    container_name: zabbix-server-mysql
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
#      - ./etc/zabbix/zabbix_server.conf:/etc/zabbix/zabbix_server.conf:rw
#      - ./usr/local/etc/zabbix_server.conf.d/:/usr/local/etc/zabbix_server.conf.d/:rw
      - ./usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:rw
      - ./usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:rw
      - ./var/lib/zabbix/modules:/var/lib/zabbix/modules:rw
      - ./var/lib/zabbix/enc:/var/lib/zabbix/enc:rw
      - ./var/lib/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys:rw
      - ./var/lib/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs:rw
      - ./var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:rw
      - ./var/lib/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca:rw
      - ./var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw
      - ./var/lib/zabbix/mibs:/var/lib/zabbix/mibs:rw
    environment:
      - DB_SERVER_HOST=zabbix-mysql
      - MYSQL_USER=root
      - MYSQL_PASSWORD="123456"
    ports:
      - '10051:10051'
    links:
      - zabbix-mysql
    depends_on:
      - zabbix-mysql
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 10s
      timeout: 5s
      retries: 3
    networks:
      network_zabbix:
        ipv4_address: 192.168.137.128

networks:
  network_zabbix:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.137.0/24

注意:挂载卷时如果挂载文件,宿主机上该文件必须存在,否则会出现挂载目录到文件的错误,报错参考

在test文件夹下执行

docker-compose -f docker-compose.yaml up -d

会创建一个自定义网络test_network_zabbix,命名是由本文件夹名_配置文件中定义的网络名构成,如test文件夹名称_network_zabbix

查看网络信息

 docker network inspect 4f2fef1e7986
[root@centos71 test]# docker network ls
NETWORK ID          NAME                   DRIVER              SCOPE
9022957e163c        bridge                 bridge              local
0ae43293d71a        composetest_default    bridge              local
2a00755fdc04        host                   host                local
383bd73d91f0        my_wordpress_default   bridge              local
92a0641630fa        none                   null                local
4f2fef1e7986        test_network_zabbix    bridge              local
d1c5d7a56e30        zabbix_default         bridge              local
[root@centos71 test]# docker network inspect 4f2fef1e7986
[
    {
        "Name": "test_network_zabbix",
        "Id": "4f2fef1e7986ac138a66cf4c123683eb59957509f64e93903787955c288471a5",
        "Created": "2018-07-27T17:27:15.030268946+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "192.168.137.0/24"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "01fbff5d386b55f91a1e3520d9ad1de9e2dbbe24b71ebcf88e7ef4a0723915d6": {
                "Name": "zabbix-web-apache-mysql",
                "EndpointID": "677a93dba03836f9465e35d7485d47bd99be8b52e46a6e3f7d2f8e1130d9a83a",
                "MacAddress": "02:42:c0:a8:89:6c",
                "IPv4Address": "192.168.137.108/24",
                "IPv6Address": ""
            },
            "9f2aff9c2cfc4f0a5f86fac68214add5882bc7ec399d46223bb4b24f409695e3": {
                "Name": "zabbix-server-mysql",
                "EndpointID": "da68eed9ff6bdd8b7c801f0ab4350c2269722f2bb711bfcbebc52be12ae105dd",
                "MacAddress": "02:42:c0:a8:89:80",
                "IPv4Address": "192.168.137.128/24",
                "IPv6Address": ""
            },
            "cef181055e5ec85dbda0c28562da73a5bd30284b745644af2f6c010af38f9018": {
                "Name": "zabbix-mysql",
                "EndpointID": "8b454794bdee22800c14659a6e882fff67469786a60239501090761fdad30aa7",
                "MacAddress": "02:42:c0:a8:89:88",
                "IPv4Address": "192.168.137.136/24",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "network_zabbix",
            "com.docker.compose.project": "test",
            "com.docker.compose.version": "1.22.0"
        }
    }
]
[root@centos71 test]# 

查看容器运行状态

[root@centos71 test]# docker ps -a
CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS                      PORTS                                      NAMES
01fbff5d386b        zabbix/zabbix-web-apache-mysql:centos-latest   "docker-entrypoint.sh"   14 minutes ago      Up 14 minutes (healthy)     0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   zabbix-web-apache-mysql
9f2aff9c2cfc        zabbix/zabbix-server-mysql:centos-latest       "docker-entrypoint.sh"   14 minutes ago      Up 14 minutes (unhealthy)   0.0.0.0:10051->10051/tcp                   zabbix-server-mysql
cef181055e5e        mysql/mysql-server:5.7.22                      "/entrypoint.sh mysq…"   14 minutes ago      Up 14 minutes (unhealthy)   0.0.0.0:3306->3306/tcp, 33060/tcp          zabbix-mysql

猜你喜欢

转载自blog.csdn.net/matengbing/article/details/81255450