为所有Docker容器配置Http代理

时间:2020-02-11 12:00:26

标签: python docker docker-compose

我有5个容器,但我想为所有容器提供不同的HTTP代理

例如,我的数据库容器端口是8989

我已添加到路径~/.docker/config.json

{
   "proxies":{
      "default":{
         "httpProxy":"http://127.0.0.1:8989",

      }
   }
}

我应该为每个容器做些什么,如何测试它是否有效?

1 个答案:

答案 0 :(得分:1)

这不是在Docker配置级别完成的,而是通过端口映射完成的

Docker Run

使用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

在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。