我创建yaml文件用于在docker上创建容器:
version: '3'
services:
mysql:
container_name: 'MySQL'
image: 'mysql'
environment:
MYSQL_DATABASE: 'zabbix_db'
MYSQL_USER: 'zabbix_user'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_PASSWORD: 'zabbix_password' volumes: - './mysql:/var/lib/mysql' ports: - '3306:3306' restart: 'on-failure' zabbix-server: container_name: 'Zabbix-server' image: 'zabbix/zabbix-server-mysql'
environment:
ZBX_DBTLSCONNECT: 'required' # DB_SERVER_HOST: '127.0.0.1' # DB_SERVER_PORT: '3306' MYSQL_USER: 'zabbix_user' MYSQL_PASSWORD: 'zabbix_password' MYSQL_DATABASE: 'zabbix_db' ports: - '10051:10051' depends_on:
- 'mysql'
zabbix-web-nginx-mysql:
container_name: 'zabbix-web-nginx-mysql'
image: 'zabbix/zabbix-web-nginx-mysql'
environment:
BX_DB_ENCRYPTION: 'true'
# ZBX_SERVER_HOST: '127.0.0.1'
# ZBX_SERVER_PORT: '10051'
# DB_SERVER_HOST: '127.0.0.1'
# DB_SERVER_PORT: '3306'
MYSQL_DATABASE: 'zabbix_db'
MYSQL_USER: 'zabbix_user'
MYSQL_PASSWORD: 'zabbix_password'
PHP_TZ: 'Asia/Tehran'
depends_on:
- 'mysql'
- 'zabbix-server'
ports:
- '8080:8080'
zabbix-agent:
container_name: 'Zabbix-agent'
image: 'zabbix/zabbix-agent'
environment:
ZBX_HOSTNAME: 'srv197189'
ZBX_SERVER_HOST: '127.0.0.1'
ZBX_ACTIVESERVERS: '127.0.0.1:10051'在这个yaml文件中使用mysql, zabbix-server、zabbix-web-nginx-mysql和zabbix agent。当我运行sudo docker-compose up时,mysql成功地创建了但是zabbbix-server和zabbix-web-nginx-mysql得到了以下错误:
MySQL server is not available. Waiting 5 seconds...以其他方式,我在系统中安装了mysql (不是码头),但是被提到了错误。
发布于 2022-07-17 16:19:21
您的zabbix-web-nginx-mysql容器无法用当前设置/配置连接到mysql服务器。
docker创建一个默认网络,您的所有容器都将在其中连接,以便它们能够相互通信。
通过使用yml文件中定义的服务名称,您的所有容器都可以到达对方。
所以你只需要取消评论
DB_SERVER_HOST: '127.0.0.1'并代之以
DB_SERVER_HOST: 'mysql'现在,您的容器应该能够到达并连接到mysql数据库。
请记住,127.0.0.1不是容器中的主机!
https://stackoverflow.com/questions/73013256
复制相似问题