
[英]Docker: Avoid having to run all containers and having to build image again
[英]Configuring Http Proxy for all Docker Containers
我有 5 个容器,但我想为所有容器提供不同的 HTTP 代理
比如我的DB容器端口是8989
我添加到路径~/.docker/config.json
{
"proxies":{
"default":{
"httpProxy":"http://127.0.0.1:8989",
}
}
}
我应该为每个容器做些什么吗?我该如何测试它是否有效?
这不是在 Docker 配置级别完成的,而是使用端口映射
使用 Docker 运行命令,您必须通过标志-p
或--publish
执行此操作:
docker run --publish 127.0.0.1:8989:8989 db
所以这将 map 主机上的端口127.0.0.1:8989
到容器0.0.0.0:8989
,因此您需要确保您的容器正在侦听0.0.0.0
,而不是127.0.0.1
。
在 docker 中,您可以使用服务中的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-compose.yml
文件示例
如果您只需要从 same.network 中的另一个容器访问数据库,那么您可以从 docker 作曲家文件中删除ports
,并使用它的服务名称从另一个容器引用数据库,在本例中是db1
或`db2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.