繁体   English   中英

为所有 Docker 容器配置 Http 代理

[英]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 跑

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM