欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker容器之間通訊-network解讀

 更新時間:2023年12月15日 09:23:20   作者:古甲哈醒  
這篇文章主要介紹了docker容器之間通訊-network解讀,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

docker為容器創(chuàng)建獨(dú)立的網(wǎng)絡(luò)環(huán)境,實(shí)現(xiàn)宿主和容器、容器之間的網(wǎng)絡(luò)隔離,默認(rèn)使用bridge模式的網(wǎng)絡(luò),實(shí)現(xiàn)容器之間、容器與宿主機(jī)之間、乃至與外界之間 的網(wǎng)絡(luò)通信。

但是我們在實(shí)際部署應(yīng)用的時候,發(fā)現(xiàn)并不能直接通過容器內(nèi)部端口訪問另外一個容器的應(yīng)用(比如:mysql容器端口是3306,web應(yīng)用不能直接通過3306訪問mysql),而是通過端口映射到宿主機(jī)器來實(shí)現(xiàn)容器之間的訪問。

那么有什么方式能實(shí)現(xiàn)直接通過容器內(nèi)部端口進(jìn)行數(shù)據(jù)通訊呢?那就是通過network方式。

docker network創(chuàng)建一個橋接網(wǎng)絡(luò),在docker run的時候?qū)⑷萜髦付ǖ叫聞?chuàng)建的橋接網(wǎng)絡(luò)中,這樣同一橋接網(wǎng)絡(luò)中的容器就可以通過互相訪問。

1、創(chuàng)建network

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker network create my-network
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
e4de24aaf1c2        bridge              bridge              local
093caaca12b4        host                host                local
a2b05d7d591a        my-network          bridge              local
6e6497f8e311        none                null                local
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# 

可以看到my-network已經(jīng)創(chuàng)建好,另外其他3個是docker默認(rèn)創(chuàng)建的。

2、創(chuàng)建容器時指定網(wǎng)絡(luò)

在創(chuàng)建容器時指定使用my-network網(wǎng)絡(luò),并設(shè)置網(wǎng)絡(luò)別名。

docker run -itd --name mysql --network my-network --network-alias mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7.24
  • –network 指定使用的網(wǎng)絡(luò)
  • –network-alias 設(shè)置網(wǎng)絡(luò)別名

如果容器已創(chuàng)建好但是之前沒有指定自己的網(wǎng)絡(luò),則使用下面命令修改:

docker network connect --alias mysql my-network mysql

第一個mysql是網(wǎng)絡(luò)別名 第二個mysql是容器名

3、通過網(wǎng)絡(luò)別名測試訪問

進(jìn)入web容器,使用ping命令測試

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker exec -it tomcat_kq bash
root@161eee53356c:/usr/local/tomcat# ping mysql
PING mysql (172.18.0.2) 56(84) bytes of data.
64 bytes from mysql.my-network (172.18.0.2): icmp_seq=1 ttl=64 time=0.049 ms

可以看到通過mysql網(wǎng)絡(luò)別名可以直接訪問。

另外通過容器id或者主機(jī)名也是可以訪問的。但是你不加入這個自定義網(wǎng)絡(luò),則沒法訪問。這個在項(xiàng)目實(shí)際應(yīng)用中非常重要,特別是通過主機(jī)名識別服務(wù)的項(xiàng)目,如springcoud項(xiàng)目

4、項(xiàng)目實(shí)際應(yīng)用

修改web項(xiàng)目訪問mysql的數(shù)據(jù)庫地址,由ip改為網(wǎng)絡(luò)別名,端口為容器內(nèi)部端口:

jdbc:mysql://mysql:3306/kaoqin?allowMultiQueries=true

注意:mysql是前面設(shè)置的網(wǎng)絡(luò)別名,3306是容器內(nèi)部端口

這里特別提一下springcloud項(xiàng)目,eureka中心一般是通過主機(jī)名來中注冊發(fā)現(xiàn)服務(wù)的,但是一放到docker容器中,springboot應(yīng)用就報(bào)錯,提示不能發(fā)送心跳到注冊中心,就是因?yàn)槿萜髦虚g的網(wǎng)絡(luò)隔離造成的,通過把所有容器加入到自定義網(wǎng)絡(luò)就能解決此問題。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • centos7安裝/升級docker和docker compose方式

    centos7安裝/升級docker和docker compose方式

    文章總結(jié)了在升級Docker和安裝Docker Compose時遇到的問題,包括舊版安裝和新版安裝的差異、docker-compose的安裝問題以及卸載前的注意事項(xiàng)
    2024-12-12
  • Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

    Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

    本文主要介紹了Docker容器之間數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • docker-compose如何定義容器的ip

    docker-compose如何定義容器的ip

    這篇文章主要介紹了docker-compose如何定義容器的ip問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • docker交叉編譯工具鏈解讀

    docker交叉編譯工具鏈解讀

    使用Docker容器進(jìn)行交叉編譯具有環(huán)境隔離、一致性、可移植性和簡化配置等優(yōu)勢,以下是一個示例的Dockerfile,用于創(chuàng)建一個包含C++11 ARM交叉編譯工具鏈的Docker容器,構(gòu)建完成后,可以在容器中進(jìn)行ARM交叉編譯
    2024-12-12
  • Ubuntu24.04LTS在線安裝Docker引擎的詳細(xì)過程

    Ubuntu24.04LTS在線安裝Docker引擎的詳細(xì)過程

    本文介紹了在Ubuntu 24.04 LTS系統(tǒng)上安裝Docker引擎的步驟,包括卸載舊版本、設(shè)置Docker APT倉庫、安裝最新版或指定版本的Docker,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Dockerfile及新型容器鏡像構(gòu)建技術(shù)詳解

    Dockerfile及新型容器鏡像構(gòu)建技術(shù)詳解

    本文詳細(xì)介紹了dockerfile以及新型容器鏡像構(gòu)建技術(shù),文章中通過詳細(xì)的代碼示例介紹了dockerfile生成容器鏡像器的全過程,感興趣的小伙伴可以參考一下
    2023-04-04
  • Docker中啟動Nacos的實(shí)現(xiàn)示例

    Docker中啟動Nacos的實(shí)現(xiàn)示例

    本文主要介紹了Docker中啟動Nacos的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Docker 部署單機(jī)版 Pulsar 和集群架構(gòu) Redis(開發(fā)神器)的方法

    Docker 部署單機(jī)版 Pulsar 和集群架構(gòu) Redis(開發(fā)神器)的方法

    這篇文章主要介紹了Docker 部署單機(jī)版 Pulsar 和集群架構(gòu) Redis(開發(fā)神器)的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 10分鐘學(xué)會docker

    10分鐘學(xué)會docker

    Docker 是一個開源的應(yīng)用容器引擎,基于 Go 語言 并遵從Apache2.0協(xié)議開源。Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
    2017-06-06
  • Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連

    Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連

    在某些特殊需求下,我們想ssh直接遠(yuǎn)程連接docker 容器,本文主要介紹了Docker容器實(shí)現(xiàn)SSH遠(yuǎn)程直連,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08

最新評論