安装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