Pie*_*ter 51 hosts docker docker-compose
我docker-compose用来运行一个测试环境,它包含大约5个不同的容器.容器间链接和共享卷(卷 - 来)非常有效.我还将一些端口暴露给主机,这很好用.
我缺少的是一种将我的一些真实服务器链接到这个环境的方法,没有硬编码的IP地址.使用docker run,您可以使用--add-host在/etc/hosts文件中添加另一行.有没有办法用docker-compose做类似的事情?
jpe*_*zzo 57
我有个好消息:这将是在Compose 1.3中!
我在当前的RC(RC1)中使用它,如下所示:
rng:
build: rng
extra_hosts:
seed: 1.2.3.4
tree: 4.3.2.1
Run Code Online (Sandbox Code Playgroud)
one*_*klc 53
https://docs.docker.com/compose/compose-file/#extra_hosts
extra_hosts - 添加主机名映射.使用与docker client --add-host参数相同的值.
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
Run Code Online (Sandbox Code Playgroud)
将在此服务的容器内的/ etc/hosts中创建具有ip地址和主机名的条目,例如:
162.242.195.82 somehost
50.31.209.229 otherhost
Run Code Online (Sandbox Code Playgroud)
Shu*_*ham 20
docker-compose.yml带有额外主机的基本:
version: '3'
services:
api:
build: .
ports:
- "5003:5003"
extra_hosts:
- "your-host.name.com:162.242.195.82" #host and ip
- "your-host--1.name.com your-host--2.name.com:50.31.209.229" #multiple hostnames with same ip
Run Code Online (Sandbox Code Playgroud)
/etc/hosts创建的容器中文件的内容:
162.242.195.82 your-host.name.com
50.31.209.229 your-host--1.name.com your-host--2.name.com
Run Code Online (Sandbox Code Playgroud)
您可以/etc/hosts使用以下命令检查文件:
$ docker-compose -f path/to/file/docker-compose.yml run api bash # 'api' is service name
#then inside container bash
root@f7c436910676:/app# cat /etc/hosts
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77049 次 |
| 最近记录: |