docker-compose配置zabbix環境
docker-compose文件
version: "3"
services:
zabbix-mysql:
image: mysql:5.7
container_name: zabbix-mysql
ports:
- ‘3306‘
environment:
- MYSQL_ROOT_PASSWORD="123456"
volumes:
- ./mysql_data:/var/lib/mysql
zabbix-web-apache-mysql:
image: zabbix/zabbix-web-apache-mysql
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
ports:
-
‘80:80‘
- ‘443:443‘
links:
-
zabbix-mysql
- zabbix-server-mysql
depends_on:
- zabbix-mysql
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql
container_name: zabbix-server-mysql
environment:
-
DB_SERVER_HOST=zabbix-mysql
-
MYSQL_USER=root
- MYSQL_PASSWORD="123456"
ports:
- ‘10051:10051‘
links:
- zabbix-mysql
depends_on:
- zabbix-mysql
配置文件中zabbix-mysql掛載了當前路徑下的mysql_data文件夾到容器中的/var/lib/mysql,這樣容器中的mysql的數據文件可以在linux主機中查看,即使容器停止並刪除,數據文件任然保存在linux主機上
註意:搭建前相應的容器停止並刪除,否則可能不會在linux主機上顯示容器內的mysql數據文件
[[email protected] zabbix]# docker-compose -f docker-compose up -d
Creating zabbix-mysql ... done
Creating zabbix-server-mysql ... done
Creating zabbix-web-apache-mysql ... done
[[email protected] zabbix]# ls -lah
total 16K
drwxr-xr-x. 3 root root 58 Jul 26 15:24 .
dr-xr-x---. 26 root root 4.0K Jul 26 15:13 ..
-rw-r--r--. 1 root root 972 Jul 26 15:13 docker-compose
-rw-r--r--. 1 root root 13 Jul 25 14:32 .env
drwxr-xr-x. 6 systemd-bus-proxy ssh_keys 4.0K Jul 26 15:25 mysql_data
[[email protected] zabbix]# cd mysql_data/
[[email protected] mysql_data]# ls -alh
total 185M
drwxr-xr-x. 6 systemd-bus-proxy ssh_keys 4.0K Jul 26 15:25 .
drwxr-xr-x. 3 root root 58 Jul 26 15:24 ..
-rw-r-----. 1 systemd-bus-proxy ssh_keys 56 Jul 26 15:24 auto.cnf
-rw-------. 1 systemd-bus-proxy ssh_keys 1.7K Jul 26 15:24 ca-key.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 1.1K Jul 26 15:24 ca.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 1.1K Jul 26 15:24 client-cert.pem
-rw-------. 1 systemd-bus-proxy ssh_keys 1.7K Jul 26 15:24 client-key.pem
-rw-r-----. 1 systemd-bus-proxy ssh_keys 1.4K Jul 26 15:24 ib_buffer_pool
-rw-r-----. 1 systemd-bus-proxy ssh_keys 76M Jul 26 15:31 ibdata1
-rw-r-----. 1 systemd-bus-proxy ssh_keys 48M Jul 26 15:31 ib_logfile0
-rw-r-----. 1 systemd-bus-proxy ssh_keys 48M Jul 26 15:24 ib_logfile1
-rw-r-----. 1 systemd-bus-proxy ssh_keys 12M Jul 26 15:25 ibtmp1
drwxr-x---. 2 systemd-bus-proxy ssh_keys 4.0K Jul 26 15:24 mysql
drwxr-x---. 2 systemd-bus-proxy ssh_keys 8.0K Jul 26 15:24 performance_schema
-rw-------. 1 systemd-bus-proxy ssh_keys 1.7K Jul 26 15:24 private_key.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 451 Jul 26 15:24 public_key.pem
-rw-r--r--. 1 systemd-bus-proxy ssh_keys 1.1K Jul 26 15:24 server-cert.pem
-rw-------. 1 systemd-bus-proxy ssh_keys 1.7K Jul 26 15:24 server-key.pem
drwxr-x---. 2 systemd-bus-proxy ssh_keys 8.0K Jul 26 15:24 sys
drwxr-x---. 2 systemd-bus-proxy ssh_keys 12K Jul 26 15:25 zabbix
掛載路徑寫相對路徑,可以將整個文件夾整體拷貝到其他機器,方便遷移
當重新使用docker-compose加載鏡像啟動容器時,不會覆蓋之前映射的linux主機文件夾,而是直接使用,如下進行測試
在mysql_data文件夾下新建一個test.txt文件,寫入一些字符串
[[email protected] mysql_data]# touch test.txt
[[email protected] mysql_data]# vim test.txt
[[email protected] mysql_data]# ls
auto.cnf client-cert.pem ibdata1 ibtmp1 private_key.pem server-key.pem zabbix
ca-key.pem client-key.pem ib_logfile0 mysql public_key.pem sys
ca.pem ib_buffer_pool ib_logfile1 performance_schema server-cert.pem test.txt
停止並刪除容器,新建的test.txt文件仍然存在
[[email protected] zabbix]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5990d74a7f47 zabbix/zabbix-web-apache-mysql "docker-entrypoint.sh" 22 minutes ago Up 22 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp zabbix-web-apache-mysql
70f3037cacdf zabbix/zabbix-server-mysql "docker-entrypoint.sh" 22 minutes ago Up 22 minutes 0.0.0.0:10051->10051/tcp zabbix-server-mysql
7bbdd78149de mysql:5.7 "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 0.0.0.0:32782->3306/tcp zabbix-mysql
[[email protected] zabbix]# docker stop 5990d74a7f47 70f3037cacdf 7bbdd78149de
5990d74a7f47
70f3037cacdf
7bbdd78149de
[[email protected] zabbix]#
[[email protected] zabbix]# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
5990d74a7f476568a779ed2e5566c09259724a86bbdfc98533640c13d83286aa
70f3037cacdfaee7a2455c47a4b8c64d0319291c919027ee1fd49e0eb0e5e414
7bbdd78149dead951bb111f87cb6627941bf2756cec5cdd80031a9fe5e657fb8
Total reclaimed space: 39.06kB
[[email protected] zabbix]# ls
docker-compose mysql_data
[[email protected] zabbix]# cd mysql_data/
[[email protected] mysql_data]# ls
auto.cnf client-cert.pem ibdata1 mysql public_key.pem sys
ca-key.pem client-key.pem ib_logfile0 performance_schema server-cert.pem test.txt
ca.pem ib_buffer_pool ib_logfile1 private_key.pem server-key.pem zabbix
[[email protected] mysql_data]# cat test.txt
if this text exists,not override
重新使用docker-compose文件啟動容器(因為之前的容器已經刪除,所以從image啟動新容器),test.txt文件仍然存在
[[email protected] zabbix]# docker-compose -f docker-compose up -d
Creating zabbix-mysql ... done
Creating zabbix-server-mysql ... done
Creating zabbix-web-apache-mysql ... done
[[email protected] zabbix]#
[[email protected] zabbix]#
[[email protected] zabbix]# ls
docker-compose mysql_data
[[email protected] zabbix]# cd mysql_data/
[[email protected] mysql_data]# ls
auto.cnf client-cert.pem ibdata1 ibtmp1 private_key.pem server-key.pem zabbix
ca-key.pem client-key.pem ib_logfile0 mysql public_key.pem sys
ca.pem ib_buffer_pool ib_logfile1 performance_schema server-cert.pem test.txt
[[email protected] mysql_data]# cat test.txt
if this text exists,not override
[[email protected] mysql_data]#
docker-compose配置zabbix環境