一千萬個為什麽

搜索

網絡之間的Docker容器



I have a docker container 'A' on a host 10.11.12.13 listening on port 0.0.0.0:8443->8443/tcp I have another container 'B' on same host how wants to talk to 'A' on 8443 via host. Thus when I run command curl https://10.11.12.13:8443 inside B it gives me error as 'No route to host' but I can ping 10.11.12.13 successfully. I am not sure what else I am missing?

有人可以幫助解決這個問題嗎?

轉載註明原文: 網絡之間的Docker容器

一共有 1 個回答:

Docker實際上為容器之間的網絡提供了DNS支持。這意味著如果您將數據庫連接定義為:

http://redis:6379

這會將 redis 解析為正確的網絡地址,因為您完成了以下任務:

  • 所有容器都在同一個網絡上
  • 這些容器已被命名為

這可以通過 cli 或自動啟動兩個實例來手動完成使用泊塢窗撰寫腳本,這是我的建議。在構建腳本中,從版本3開始,您將定義兩個服務(又名容器):

version: "3"
services:
  web:
    build: ./web
    container_name: web
    networks:
      - backend
    command: bash -c "./start.sh"

  redis:
    image: redis:3.2
    container_name: redis
    networks:
      - backend

在文件末尾,定義網絡兩個實例應該連接到:

networks:
  backend: