我有5个容器,但我想为所有容器提供不同的HTTP代理
例如,我的数据库容器端口是8989
我已添加到路径~/.docker/config.json
{
"proxies":{
"default":{
"httpProxy":"http://127.0.0.1:8989",
}
}
}
我应该为每个容器做些什么,如何测试它是否有效?
答案 0 :(得分:1)
这不是在Docker配置级别完成的,而是通过端口映射完成的
使用Docker Run命令,您必须通过标志-p
或--publish
进行操作:
docker run --publish 127.0.0.1:8989:8989 db
因此,这会将主机上的端口127.0.0.1:8989
映射到容器0.0.0.0:8989
,因此,您需要确保容器正在监听0.0.0.0
,而不是{{1} }。
在docker compose中,您可以在服务内部使用127.0.0.1
来定义端口映射:
ports
注意:这不是完整的
services: db1: image: database-image-name ports: # Database reachable from the internet - "8901:8989/tcp" # Database only reachable via localhost - "127.0.0.1:9901:8989/tcp" db2: image: database-image-name ports: # Database reachable from the internet - "8902:8989/tcp" # Database only reachable via localhost - "127.0.0.1:9902:8989/tcp"
文件示例
如果仅需要从同一网络中的另一个容器访问数据库,则可以从docker composer文件中删除docker-compose.yml
,并使用服务名称从另一个容器引用该数据库,即在此示例中为ports
或`db2。