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

docker容器間的互聯(lián)問題

 更新時(shí)間:2023年05月18日 16:17:03   作者:萊特昂  
這篇文章主要介紹了docker容器間的互聯(lián)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

docker容器間互聯(lián)

單機(jī)部署的時(shí)候考慮,能不能使docker各個(gè)容器間互通呢。比如我的web應(yīng)用容器可以和db容器間互通,而不是現(xiàn)在這樣再web應(yīng)用調(diào)用本機(jī)ip去訪問。

網(wǎng)上查了一下還真有這種方法。

還有兩種方法:

1、links

在容器啟動(dòng)時(shí),啟動(dòng)命令中加入links指定鏈接的容器:

docker run -itd --name nginx-web02 --link nginx-web:nginx01 -p 81:81 sunmmi/nginx nginx

run容器nginx-web02時(shí),link容器nginx-web,其中nginx-web:nginx01前面是鏈接哪個(gè)容器名,后面是對(duì)這個(gè)容器別名.

進(jìn)入nginx-web02容器,查看hosts文件,nginx-web,nginx01已經(jīng)增加到hosts文件中.

[root@37e693a5f7a3 /]# cat /etc/hosts
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2  nginx01 7d89f9196f78 nginx-web
172.17.0.3  37e693a5f7a3

此時(shí)在容器1中就能通過別名直接Ping通容器2了。

測(cè)試:

[root@37e693a5f7a3 /]# ping nginx01
PING nginx01 (172.17.0.2) 56(84) bytes of data.
64 bytes from nginx01 (172.17.0.2): icmp_seq=1 ttl=64 time=0.071 ms
64 bytes from nginx01 (172.17.0.2): icmp_seq=2 ttl=64 time=0.170 ms

2、network

第二種也是在容器啟動(dòng)時(shí),啟動(dòng)命令中加入network指定局域網(wǎng)絡(luò):

首先創(chuàng)建一個(gè)新的 Docker 網(wǎng)絡(luò):

$ docker network create -d bridge my-net

運(yùn)行一個(gè)容器并連接到新建的 my-net 網(wǎng)絡(luò)

$ docker run -it --rm --name busybox1 --network my-net busybox sh

打開新的終端,再運(yùn)行一個(gè)容器并加入到 my-net 網(wǎng)絡(luò)

$ docker run -it --rm --name busybox2 --network my-net busybox sh

下面通過 ping 來證明 busybox1 容器和 busybox2 容器建立了互聯(lián)關(guān)系。在 busybox1 容器輸入以下命令

/ # ping busybox2
PING busybox2 (172.19.0.3): 56 data bytes
64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.072 ms
64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.118 ms

用 ping 來測(cè)試連接 busybox2 容器,它會(huì)解析成 172.19.0.3。同理在 busybox2 容器執(zhí)行 ping busybox1,

/ # ping busybox1
PING busybox1 (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.064 ms
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.143 ms

這樣,busybox1 容器和 busybox2 容器建立了互聯(lián)關(guān)系。

network 官方 docker-compose.yml ,替換links的方法:

network固定子網(wǎng)絡(luò)Ip

適用于鏈接redis等需要固定ip的場(chǎng)景,需要設(shè)置兩點(diǎn)1、容器的networks:ipv4_address,再單獨(dú)配置networks:config:subnet,gateway,參照下面實(shí)例:

version: "3.9"
networks:
  loki:
    ipam:
      driver: default
      config:
      # 子網(wǎng)絡(luò)
        - subnet: "172.22.0.0/24"
          gateway: 172.22.0.1
services:
  resty:
    image: beyond147896/resty:latest
    ports:
      - "80:80"
      - "443:443"
    networks:
      loki:
      	# 固定子網(wǎng)ip,網(wǎng)段必須在子網(wǎng)絡(luò)172.22.*.*
        ipv4_address: 172.22.0.2
  redis:
    image: redis:latest
    ports:
      - "6379:6379"
    networks:
      loki:
        # 固定子網(wǎng)ip,網(wǎng)段必須在子網(wǎng)絡(luò)172.22.*.*
        ipv4_address: 172.22.0.99

在web應(yīng)用的配置中也可以直接寫上面配置的ipv4_address固定Ip連通。

如果首次啟動(dòng)出現(xiàn)報(bào)錯(cuò),可能是docker-compose的版本不夠高,升級(jí)版本后可能可以解決。

如果第二次啟動(dòng)出現(xiàn)報(bào)錯(cuò),可能是網(wǎng)絡(luò)占用,使用docker-compose up之后,docker-compose會(huì)創(chuàng)建一個(gè)名稱為: {項(xiàng)目名}_{網(wǎng)絡(luò)名} 的網(wǎng)絡(luò),一旦創(chuàng)建了這個(gè)網(wǎng)絡(luò),docker-compose 將永遠(yuǎn)不會(huì)刪除它。

所以當(dāng)修改了docker-compose.yaml文件后,第二次運(yùn)行docker-compose up時(shí),使用的還是之前創(chuàng)建的loki_loki網(wǎng)絡(luò)。

解決方法

將之前創(chuàng)建的網(wǎng)絡(luò)手動(dòng)刪除:

$ docker network rm loki_loki
$ docker-compose up

總結(jié)

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

相關(guān)文章

  • Docker搭建Redis5.0并掛載數(shù)據(jù)

    Docker搭建Redis5.0并掛載數(shù)據(jù)

    本文主要介紹了Docker搭建Redis5.0并掛載數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 更改docker默認(rèn)數(shù)據(jù)目錄的方法步驟

    更改docker默認(rèn)數(shù)據(jù)目錄的方法步驟

    本文主要介紹了更改docker默認(rèn)數(shù)據(jù)目錄的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 解決nacos啟動(dòng)時(shí)防火墻開啟8848的坑

    解決nacos啟動(dòng)時(shí)防火墻開啟8848的坑

    最近操作Nacos時(shí)遭遇8848端口無法訪問的問題,嘗試通過安全組和firewall配置仍無法解決,最終發(fā)現(xiàn),firewall對(duì)Docker使用專門的作用域,需要在相應(yīng)作用域下開放端口,務(wù)必檢查firewall中針對(duì)Docker的設(shè)置,確保8848端口在正確的作用域內(nèi)被允許通行
    2022-10-10
  • Docker中優(yōu)化Mysql運(yùn)行內(nèi)存的操作

    Docker中優(yōu)化Mysql運(yùn)行內(nèi)存的操作

    這篇文章主要介紹了Docker當(dāng)中優(yōu)化Mysql運(yùn)行內(nèi)存的操作,經(jīng)過一番操作可以優(yōu)化為只占用100mb內(nèi)存,具體優(yōu)化方法及技巧跟隨小編一起看看吧
    2022-01-01
  • docker 如何修改mysql的root密碼

    docker 如何修改mysql的root密碼

    這篇文章主要介紹了docker 修改mysql的root密碼操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解

    Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解

    這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 詳解在Docker容器中運(yùn)行Spring Boot應(yīng)用

    詳解在Docker容器中運(yùn)行Spring Boot應(yīng)用

    本文將以一個(gè)最簡(jiǎn)單的Spring Boot開發(fā)的Web應(yīng)用為例,講解如何將其容器化運(yùn)行。本文的重點(diǎn)是構(gòu)建Docker鏡像、運(yùn)行Docker容器。
    2017-06-06
  • docker容器中布置靜態(tài)網(wǎng)站的實(shí)現(xiàn)

    docker容器中布置靜態(tài)網(wǎng)站的實(shí)現(xiàn)

    這篇文章主要介紹了docker容器中布置靜態(tài)網(wǎng)站的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • CoreOS配置Docker鏡像加速器的方法

    CoreOS配置Docker鏡像加速器的方法

    本篇文章主要介紹了CoreOS配置Docker鏡像加速器的方法,CoreOS下的Docker配置是通過flannel unit來實(shí)現(xiàn)的,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 在windows下的安裝Docker的教程

    在windows下的安裝Docker的教程

    這篇文章主要介紹了在windows下的安裝Docker的教程,注意只能是64的系統(tǒng),需要的朋友可以參考下
    2015-12-12

最新評(píng)論