为所有Docker容器配置Http代理

2024-04-27 07:29:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如,我的DB容器端口是8989

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

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

      }
   }
}

我应该为每个容器做什么,如何测试它是否工作


Tags: 端口docker路径configjsonhttpdefault代理
1条回答
网友
1楼 · 发布于 2024-04-27 07:29:45

这不是在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,而不是在127.0.0.1

Docker Compose

在docker compose中,您可以在服务内使用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"

NOTE: this is not a full docker-compose.yml file example

如果只需要从同一网络中的另一个容器访问数据库,那么可以从docker composer文件中删除ports,并使用另一个容器的服务名称(在本例中为db1或`db2)引用该数据库

相关问题 更多 >