亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker實現(xiàn)容器之間通信的多種方式

 更新時間:2025年06月20日 08:36:40   作者:思靜魚  
在 Docker 中,實現(xiàn)容器之間的通信有多種方式,核心在于網絡配置,下面我從 基礎原理、常見方式、最佳實踐、以及 docker-compose 方式 全面講解,需要的朋友可以參考下

一、Docker 容器間通信的本質是什么?

容器之間通信依賴 Docker 網絡(Network),默認有幾種網絡類型:

類型描述
bridge默認網絡,同一網橋內容器可以通過容器名通信
host共享宿主機網絡,無隔離(無端口映射)
none容器無網絡,僅用于極端隔離場景
overlay用于 Docker Swarm 集群通信

二、常用容器通信方式

1. **橋接網絡(默認)**下的通信

方法一:通過容器名稱訪問

默認容器在 bridge 網絡中可以通過 名稱解析容器名 → IP 進行通信:

docker network create mynet
docker run -dit --name container-a --network mynet alpine sh
docker run -dit --name container-b --network mynet alpine sh

然后進入 container-b,ping container-a 即可:

ping container-a

可用于微服務中服務間調用,如:

http://container-a:8080/api/...

方法二:共享同一網絡(如 docker-compose 自動創(chuàng)建)

version: '3'
services:
  web:
    image: nginx
  app:
    image: my-java-app
    depends_on:
      - web
  • web 的容器名稱就是 web
  • app 中可通過 web:80 與其通信,無需指定 IP

2. host 網絡模式下通信

容器共享宿主機網絡,無端口映射限制,適合需要 UDP、低延遲通信:

docker run --network host my-app

注意:

  • 所有容器共享端口空間,避免端口沖突
  • 容器可以通過 localhost 訪問宿主其他服務

3. 端口 暴露 + 宿主機 IP 通信(最通用但低效)

每個容器通過 -p 映射端口 暴露到宿主機:

docker run -p 8080:8080 --name web my-web
docker run -p 8081:8081 --name app my-app

此時容器間不能直接通信,只能通過宿主 IP 和端口:

curl http://host-ip:8080/

三、Docker 網絡命令速查

命令說明
docker network ls查看所有網絡
docker network inspect mynet查看某網絡下容器信息(IP等)
docker network create mynet創(chuàng)建自定義網絡
docker network connect把容器加入到一個網絡
docker network disconnect移除容器的網絡連接

四、docker-compose 中容器通信最佳實踐

version: '3'
services:
  mysql:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
  app:
    image: my-java-app
    depends_on:
      - mysql
    environment:
      DB_HOST: mysql
  • app 可以用 mysql:3306 與數據庫通信
  • 不用寫 IP,容器名即服務名,Compose 默認建立 bridge 網絡

五、最佳實踐小結

場景推薦方案
同機通信自定義 bridge 網絡,容器名互通
簡化開發(fā)用 docker-compose 管理服務
性能要求高使用 --network host
集群通信使用 overlay 網絡(Docker Swarm)

補充:容器 DNS 是怎么解析的?

Docker 默認為每個網絡分配一個 DNS 服務,容器名在網絡中解析為容器 IP:

# 容器內
nslookup web

你會看到:web 自動解析成 IP 地址。

總結

通信方式說明與特點
通過容器名通信推薦,自定義網絡或 docker-compose 默認支持
宿主機 IP + 映射端口最通用但性能差
host 網絡通信高性能但需管理端口沖突
overlay 網絡通信多主機通信(Swarm/集群用)

以上就是Docker實現(xiàn)容器之間通信的多種方式的詳細內容,更多關于Docker容器間通信的資料請關注腳本之家其它相關文章!

相關文章

  • docker 搭建hadoop以及hbase集群詳解

    docker 搭建hadoop以及hbase集群詳解

    本篇文章主要介紹了docker 搭建hadoop以及hbase集群詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Docker?Windows最新版(4.17.x)修改鏡像存儲路徑的詳細步驟

    Docker?Windows最新版(4.17.x)修改鏡像存儲路徑的詳細步驟

    這篇文章主要介紹了Docker?WIndows最新版(4.17.x)修改鏡像存儲路徑的步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Docker Compose安裝本地maven方式

    Docker Compose安裝本地maven方式

    本文介紹了如何使用Docker Compose安裝Maven,并提供了腳本和配置路徑,通過運行Docker Compose,可以查看安裝結果,進入容器后,可以查看Maven版本
    2024-12-12
  • Spring?Boot?分層打包?Docker?鏡像實踐及分析(推薦)

    Spring?Boot?分層打包?Docker?鏡像實踐及分析(推薦)

    這篇文章主要介紹了Spring?Boot?分層打包?Docker?鏡像實踐及分析,本文通過圖文并茂的形式實例代碼相結合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • docker如何安裝mysql

    docker如何安裝mysql

    這篇文章主要介紹了docker如何安裝mysql,總結了安裝心得,幫助大家更好的使用docker鏡像,感興趣的朋友可以了解下
    2020-10-10
  • Docker容器compose容器集群的快速編排方式

    Docker容器compose容器集群的快速編排方式

    這篇文章主要介紹了Docker容器compose容器集群的快速編排方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker?部署?Minio?對象存儲服務器的過程詳解

    Docker?部署?Minio?對象存儲服務器的過程詳解

    Minio是一個輕量級的應用程序,可以在各種環(huán)境中運行,包括公共云、私有云和混合云,這篇文章主要介紹了Docker?部署?Minio?對象存儲服務器的過程詳解,需要的朋友可以參考下
    2024-07-07
  • 在Docker Compose中獲取最新鏡像的多種方法總結

    在Docker Compose中獲取最新鏡像的多種方法總結

    Docker 鏡像是 Docker 容器的基礎,鏡像包含了應用程序所需的所有文件和依賴,Docker-Compose 默認不會自動拉取最新的鏡像版本,這可能會導致使用過時的鏡像,從而錯過重要的更新,為了確保 Docker-Compose 始終使用最新的鏡像,我們可以采用多種方法,以下將詳細介紹這些方法
    2024-08-08
  • Docker容器和本機之間的文件傳輸方法

    Docker容器和本機之間的文件傳輸方法

    這篇文章主要介紹了Docker容器和本機之間的文件傳輸方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • docker compose安裝es+kibana 8.12.2的詳細過程

    docker compose安裝es+kibana 8.12.2的詳細過程

    因云平臺需要改造,es7升級為es8,所以記錄一下,es8需要開啟ssl認證,需要配置證書,全本帶你用docker安裝,便于后面es8的學習,這篇文章主要介紹了docker compose安裝es+kibana 8.12.2的詳細過程,感興趣的朋友跟隨小編一起看看吧
    2024-05-05

最新評論