安装vim net-tools wget
yum install vim
yum install -y net-tools
yum install -y wget
下载docker,go语言可以不用装
wget https://download.docker.com/linux/static/stable/x86_64/docker-29.0.2.tgz
tar -zxvf docker-29.0.2.tgz
yum install -y yum-utils device-mapper-persistent-data lvm2 git go
#wget https://golang.google.cn/dl/go1.25.4.linux-amd64.tar.gz
#rm -rf /usr/local/go && tar -C /usr/local -xzf go1.25.4.linux-amd64.tar.gz
#export PATH=$PATH:/usr/local/go/bin
cp docker/* /usr/bin/
编辑docker管理文件
vim /etc/systemd/system/docker.service
bash
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
启动docker
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker.service
systemctl start docker.service
systemctl status docker.service
docker ps
开启要放行的端口,firewalld不可以关闭
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=10052/tcp
firewall-cmd --permanent --add-port=3306/tcp
拉取镜像,mysql镜像建议使用8.0
docker pull mysql:8.0
docker pull zabbix/zabbix-java-gateway:latest
docker pull zabbix/zabbix-server-mysql:latest
docker pull zabbix/zabbix-web-nginx-mysql:latest
docker pull zabbix/zabbix-agent:latest
创建网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
启动mysql
root@localhost \~# cat mysql.sh
bash
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="123456" \
--network=zabbix-net \
--restart unless-stopped \
-p 3306:3306 \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
启动 zabbix-java-gateway
root@localhost \~# cat java-gatewat.sh
bash
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart=unless-stopped \
-d zabbix/zabbix-java-gateway:latest
启动zabbix server
root@localhost \~# cat zabbix_server.sh
bash
docker run --name zabbix-server-mysql -t \
-v zabbix_server:/etc/zabbix \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="123456" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-p 10051:10051 \
--network=zabbix-net \
--restart=unless-stopped \
-d zabbix/zabbix-server-mysql:latest
启动web端
root@localhost \~# cat nginx-web.sh
bash
docker run --name zabbix-web-nginx-mysql -t \
-e PHP_TZ="Asia/Shanghai" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="123456" \
-p 8080:8080 \
--network=zabbix-net \
--restart=unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:latest
启动agent
bash
docker run --name zabbix-agent \
-e ZBX_HOSTNAME="Zabbix server" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
--init \
--link zabbix-server-mysql:zabbix-server \
--restart unless-stopped \
--network=zabbix-net \
--privileged=true \
-d -p 10050:10050 zabbix/zabbix-agent:latest
其他参考命令:
#docker ps -a
#docker network ls
#docker network inspect 网络id
#docker update --restart unless-stopped 容器id
#docker export 容器id > xxx.tar
#docker load xxx.tar
#docker logs 容器id
#docker exec -it 容器id /bin/bash