我正在尝试在docker中启动zabbix,我已经创建了docker-compose,其中一个是数据库。我需要先启动数据库,并在从数据库中获得ip地址后设置其他服务,但不知道如何做,正在尝试使用链接,但没有成功。
这是我的docker-compose.yml
version: "2"
services:
mysql-zabbix :
image: "mysql:5.7"
ports:
- "53306:3306"
networks:
- net_zabbix
volumes:
- "vol_db_zabbix:/var/lib/mysql"
environment:
- "MYSQL_ROOT_PASSWORD=abcd"
- "MYSQL_DATABASE=zabbix"
- "MYSQL_USER=zabbix"
- "MYSQL_PASSWORD=123456"
zabbix-server:
image: "zabbix/zabbix-server-mysql:alpine-3.4.11"
ports:
- "10051:10051"
networks:
- net_zabbix
environment:
- "DB_SERVER_PORT=53306"
- DB_SERVER_HOST=zabbix.db
- "MYSQL_USER=zabbix"
- "MYSQL_PASSWORD=123456"
depends_on:
- mysql-zabbix
external_links:
- mysql-zabbix:zabbix.db
zabbix-web:
image: "zabbix/zabbix-web-apache-mysql:alpine-3.4.11"
ports:
- "80:80"
networks:
- net_zabbix
environment:
- DB_SERVER_HOST=zabbix.db
- "DB_SERVER_PORT=53306"
- "MYSQL_USER=zabbix"
- "MYSQL_PASSWORD=123456"
- ZBX_SERVER_HOST=zabbix.server
- "PHP_TZ=America/Sao_Paulo"
depends_on:
- zabbix-server
external_links:
- mysql-zabbix:zabbix.db
- zabbix-server:zabbix.server
zabbix-agent:
image: "zabbix/zabbix-agent:alpine-3.4.11"
ports:
- "10050:10050"
networks:
- net_zabbix
environment:
- "ZBX_HOSTNAME=demo_zabbix"
- ZBX_SERVER_HOST=zabbix.server
external_links:
- zabbix-server:zabbix.server
zabbix-proxy:
image: "zabbix/zabbix-proxy-sqlite3:alpine-3.4.11"
ports:
- "10053:10050"
networks:
- net_zabbix
environment:
- "ZBX_HOSTNAME=demo_zabbix"
- ZBX_SERVER_HOST=zabbix.server
external_links:
- zabbix-server:zabbix.server
networks:
net_zabbix:
volumes:
vol_db_zabbix:发布于 2018-07-17 08:56:44
Docker Compose将隐式地为您创建一个私有网络,一旦创建了该私有网络,Docker将提供一个DNS服务,该服务将容器名称解析为IP地址。(显式的networks:声明是无害的,并且具有相同的效果。)您可以通过容器的名称和其他别名来引用容器。Docker Compose will register aliases to reach each container under its key in the docker-compose.yml file.
所有这些都意味着您可以使用其他容器名称作为各种*_HOST环境变量的值。请注意,使用的端口是容器内部端口;如果您连接的服务端口也发布到主机,则它是冒号右侧的端口。
在您的示例中,您应该(根据需要为不同的容器指定):
environment:
- DB_SERVER_HOST=mysql-zabbix
- DB_SERVER_PORT=3306
- ZBX_SERVER_HOST=zabbix-server您不需要指定任何类型的链接。严格来说,depends_on是可选的,但如果您运行docker-compose up zabbix-web,它也会启动它所依赖的东西。
https://stackoverflow.com/questions/51361224
复制相似问题