安装教程见官网 docker安装

windows下的docker分linux与windows内核,选择linux内核即可。


启动一个空的MySQL服务器实例

# docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -d mysql:5.7

启动Zabbix Java gateway实例

# docker run --name zabbix-java-gateway -t \
      -d zabbix/zabbix-java-gateway:latest

启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例

# 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_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:latest

启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix server实例关联

# 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_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 80:80 \
      -d zabbix/zabbix-web-nginx-mysql:latest

此时出现问题。通过docker ps命令,发现Zabbix server启动后秒退,运行出错。

通过docker logs + 容器 命令,查找错误。

发现错误代码是  6:20200922:085232.571 cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)  

                 往上调查发现是: “ERROR 1366 (HY000) at line 6586: Incorrect string value: '\xD0\xBEf bl...' for column 'description' at row 1。

经过排查,在此找到了解答。(不得不说解决技术问题还是得看谷鸽)。

查看默认的数据类型:

(查看数据类型的步骤见: 链接

经过命令:

docker run --name mysql-server -t  -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix"  -e MYSQL_PASSWORD="zabbix_pwd" -e MYSQL_ROOT_PASSWORD="root_pwd"  -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci

将数据库初始化为utf-8格式,此时数据库格式:

重新运行一遍官网教程,可以看到此时docker容器可以正常启动了。

CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                    NAMES
b912a3732a61        zabbix/zabbix-web-nginx-mysql   "docker-entrypoint.sh"   15 hours ago        Up 15 hours         8080/tcp, 0.0.0.0:80->80/tcp, 8443/tcp   zabbix-web-nginx-mysql
6e9fee3e73ae        zabbix/zabbix-server-mysql      "/sbin/tini -- /usr/…"   16 hours ago        Up 16 hours         0.0.0.0:10051->10051/tcp                 zabbix-server-mysql
1157bdbf64ec        zabbix/zabbix-java-gateway      "docker-entrypoint.s…"   16 hours ago        Up 16 hours         10052/tcp                                zabbix-java-gateway
7828adc506a7        mysql:5.7                       "docker-entrypoint.s…"   16 hours ago        Up 16 hours         3306/tcp, 33060/tcp

参考链接:

修改到UTF-8mb4(会报错,去掉mb4即可)

zabbix论坛,找到是utf8问题

docker安装zabbix中文

centos版本教程

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐