【发布时间】:2018-05-14 14:53:27
【问题描述】:
我需要从另一个容器中卷曲我的 API。
容器 1 被称为nginx
容器 2 被称为fpm
我需要能够 bash 进入我的 fpm 容器并卷曲 nginx 容器。
配置:
#docker-compose.yaml
services:
nginx:
build:
context: .
dockerfile: ./docker/nginx/Dockerfile
volumes:
- ./docker/nginx/conf/dev/api.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:80
links:
- fpm
fpm:
build:
context: .
dockerfile: ./docker/fpm/Dockerfile
volumes:
- .:/var/www/html
- ./docker/fpm/conf/dev/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- ./docker/fpm/conf/dev/api.ini:/usr/local/etc/php/conf.d/api.ini
env_file:
- ./docker/mysql/mysql.env
- ./docker/fpm/conf/dev/fpm.env
links:
- mysql
shm_size: 256M
extra_hosts:
- myapi.docker:nginx
我最初的想法是在extra_hosts 选项中添加它,例如:
extra_hosts:
- myapi.docker:nginx
但是 docker-compose up 失败了:
错误:对于 apiwip_fpm_1 无法为服务 fpm 创建容器:添加主机中的 IP 地址无效:“nginx”
我见过一些人使用 docker 的网络配置的例子,但似乎只是解析一个地址。
如何解析/评估容器的 IP 地址,而不是直接传递它?
【问题讨论】:
-
你做过这个工作吗?
-
不,我最终只是传递了 IP 地址,或者只是设置和 extra_host 以匹配我的虚拟服务器(或本地主机)
-
请注意 - 错误消息来自
extra_hosts参数使用不正确这一事实 - 值的格式应为<host>:<ip_address>- 请参阅 docs.docker.com/compose/compose-file/#extra_hosts 。因此,nginx被视为 IP 地址。 -
@piit79 评论中的链接已更改,现在为 docs.docker.com/compose/compose-file/compose-file-v3/…(适用于 v3)
-
@Gorgsenegger 新年后第一份工作回来玩 docker 网络?我不羡慕你。大声笑感谢您的链接更新。
标签: docker dns docker-compose