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

Docker 網(wǎng)絡(luò)模式及配置方式

 更新時間:2021年03月22日 08:36:41   作者:淡淡的倔強  
這篇文章主要介紹了Docker 網(wǎng)絡(luò)模式及配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一、Docker網(wǎng)絡(luò)模式

docker run 創(chuàng)建 Docker 容器時,可以用 –net 選項指定容器的網(wǎng)絡(luò)模式,Docker 有以下 4 種網(wǎng)絡(luò)模式:

host 模式,使用 –net=host 指定。

container 模式,使用 –net=container:NAME_or_ID 指定。

none 模式,使用 –net=none 指定。

bridge 模式,使用 –net=bridge 指定,默認(rèn)設(shè)置。

host 模式

如果啟動容器的時候使用 host 模式,那么這個容器將不會獲得一個獨立的 Network Namespace,而是和宿主機共用一個 Network Namespace。容器將不會虛擬出自己的網(wǎng)卡,配置自己的 IP 等,而是使用宿主機的 IP 和端口。

例如,我們在 10.10.101.105/24 的機器上用 host 模式啟動一個含有 web 應(yīng)用的 Docker 容器,監(jiān)聽 tcp 80 端口。當(dāng)我們在容器中執(zhí)行任何類似 ifconfig 命令查看網(wǎng)絡(luò)環(huán)境時,看到的都是宿主機上的信息。而外界訪問容器中的應(yīng)用,則直接使用 10.10.101.105:80 即可,不用任何 NAT 轉(zhuǎn)換,就如直接跑在宿主機中一樣。但是,容器的其他方面,如文件系統(tǒng)、進程列表等還是和宿主機隔離的。

container 模式

這個模式指定新創(chuàng)建的容器和已經(jīng)存在的一個容器共享一個 Network Namespace,而不是和宿主機共享。新創(chuàng)建的容器不會創(chuàng)建自己的網(wǎng)卡,配置自己的 IP,而是和一個指定的容器共享 IP、端口范圍等。同樣,兩個容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng)、進程列表等還是隔離的。兩個容器的進程可以通過 lo 網(wǎng)卡設(shè)備通信。

none模式

這個模式和前兩個不同。在這種模式下,Docker 容器擁有自己的 Network Namespace,但是,并不為 Docker容器進行任何網(wǎng)絡(luò)配置。也就是說,這個 Docker 容器沒有網(wǎng)卡、IP、路由等信息。需要我們自己為 Docker 容器添加網(wǎng)卡、配置 IP 等。

bridge模式

bridge 模式是 Docker 默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會為每一個容器分配 Network Namespace、設(shè)置 IP 等,并將一個主機上的 Docker 容器連接到一個虛擬網(wǎng)橋上。

當(dāng) Docker server 啟動時,會在主機上創(chuàng)建一個名為 docker0 的虛擬網(wǎng)橋,此主機上啟動的 Docker 容器會連接到這個虛擬網(wǎng)橋上。

虛擬網(wǎng)橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網(wǎng)絡(luò)中。接下來就要為容器分配 IP 了,Docker 會從 RFC1918 所定義的私有 IP 網(wǎng)段中,選擇一個和宿主機不同的IP地址和子網(wǎng)分配給 docker0,連接到 docker0 的容器就從這個子網(wǎng)中選擇一個未占用的 IP 使用。

如一般 Docker 會使用 172.17.0.0/16 這個網(wǎng)段,并將 172.17.42.1/16 分配給 docker0 網(wǎng)橋(在主機上使用 ifconfig 命令是可以看到 docker0 的,可以認(rèn)為它是網(wǎng)橋的管理接口,在宿主機上作為一塊虛擬網(wǎng)卡使用)

二、Docker網(wǎng)絡(luò)配置–設(shè)置固定IP

docker 容器在啟動時默認(rèn)使用的是bridge 模式,Docker 容器啟動后,會連接到一個名為 docker0 的虛擬網(wǎng)橋,故每次啟動docker容器的IP都不是固定的,不方便管理,有時候需要進行固定IP映射,比如Docker集群管理時。

Docker容器設(shè)置固定IP時需要用到需要用到 pipework,用于給容器設(shè)置IP:

1、host宿主機下載pipework如下:

$ git clone https://github.com/jpetazzo/pipework.git
$ cp pipework/pipework /usr/local/bin/

2、安裝網(wǎng)橋工具包bridge-utils

$ yum -y install bridge-utils

3、創(chuàng)建網(wǎng)橋并設(shè)置IP網(wǎng)段

$ brctl addbr br1
$ ip link set dev br1 up
$ ip addr add 192.168.10.1/24 dev br1

4、啟動一個容器

#基于 centos 這個鏡像啟動一個容器,名為 centos-ip
$ docker run -d --name=centos-ip centos

5、設(shè)置IP

$ pipework br1 centos-ip 192.168.10.20/24

為名為 centos-ip 的容器指定了IP 192.168.10.20

分別使用 ping 與 ssh 命令進行驗證,看是否可以ping通和成功登錄

$ ping 192.168.10.20
$ ssh 192.168.10.20

注意:SSH時需要輸入容器centos的root密碼,如果在創(chuàng)建centos容器時未指定root密碼,可先進入容器設(shè)置root密碼:

docker exec -it 容器ID/NAME
sudo passwd root

附: 刪除網(wǎng)橋

brctl show 
#查看網(wǎng)橋狀態(tài) 
brctl delif <網(wǎng)橋名> <端口名> 
#卸載網(wǎng)橋上的端口 
ifconfig 
#查看是否有網(wǎng)橋網(wǎng)卡名 
ifconfig <網(wǎng)橋名> down 
#關(guān)閉此網(wǎng)卡 
brctl delbr <網(wǎng)橋名> 
#刪除網(wǎng)橋</span> 

1.9版本后的Docker可使用下面這種方式:

1、創(chuàng)建自定義網(wǎng)絡(luò)

docker network create --subnet=192.168.10.1/24 network_my
# docker network ls 
NETWORK ID     NAME        DRIVER       SCOPE
1fb22da7d8a3    bridge       bridge       local
fe259334b842    host        host        local
8c5971ff48d8    network_my     bridge       local
3aaf0356c19c    none        null        local

2、 啟動Docker容器

docker run -itd --name hadoop0 --hostname hadoop0 --net network_my --ip 192.168.10.30 -d -P -p 50070:50070 -p 8088:8088 hadoop:master

補充:docker 鏡像源更改與網(wǎng)絡(luò)方式修改

docker 鏡像更改,在/etc/docker/daemon.json 添加鏡像地址,改用別的方式生效了。

{ "exec-opts": ["native.cgroupdriver=systemd"] }

重啟docker

systemctl restart docker systemctl status docker

居然生效了。

docker 的配置時而這樣生效,時而那樣生效,真是無語

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 將博客遷移至docker紀(jì)實

    將博客遷移至docker紀(jì)實

    作者個人博客一直是跑在阿里云主機上的,最近接觸了docker 心血來潮想把自己的應(yīng)用打包到docker容器中去,方便以后的遷移部署,這里把經(jīng)驗給大家總結(jié)分享下
    2017-05-05
  • 安裝Docker配置阿里云鏡像加速(圖文教程)

    安裝Docker配置阿里云鏡像加速(圖文教程)

    dcker配置阿里云鏡像加速,其目的是為了在提高docker鏡像下載速度,本文主要介紹了安裝Docker配置阿里云鏡像加速,具有一定的參考價值,感興趣的可以了解一下
    2022-04-04
  • Docker服務(wù)遷移的實現(xiàn)

    Docker服務(wù)遷移的實現(xiàn)

    本文詳細(xì)介紹了如何備份和遷移Docker服務(wù)數(shù)據(jù),包括停止Docker服務(wù)、備份Docker數(shù)據(jù)和DockerCompose文件,使用SCP或Rsync傳輸備份文件,以及在新服務(wù)器上恢復(fù)Docker數(shù)據(jù)和設(shè)置權(quán)限,文中提供了詳細(xì)的命令和步驟,確保數(shù)據(jù)遷移過程順利進行
    2024-10-10
  • 使用docker搭建gitlab并且開放到公網(wǎng)

    使用docker搭建gitlab并且開放到公網(wǎng)

    這篇文章主要介紹了使用docker搭建gitlab并且開放到公網(wǎng),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • docker win ping 不通容器 避坑指南

    docker win ping 不通容器 避坑指南

    這篇文章主要介紹了docker win ping 不通容器 避坑指南,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 解決docker啟動容器失敗:cannot?access‘/docker-entrypoint-initdb.d/‘:Operation?not?permitted

    解決docker啟動容器失敗:cannot?access‘/docker-entrypoint-initdb.d/‘:

    這篇文章主要介紹了解決docker啟動容器失敗:cannot?access‘/docker-entrypoint-initdb.d/‘:Operation?not?permitted,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Docker如何進入啟動容器

    Docker如何進入啟動容器

    本篇文章主要介紹了Docker如何進入啟動容器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過程

    使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過程

    這篇文章主要介紹了使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 使用Docker+jenkins+python3環(huán)境搭建超詳細(xì)教程

    使用Docker+jenkins+python3環(huán)境搭建超詳細(xì)教程

    這篇文章主要介紹了使用Docker+jenkins+python3環(huán)境搭建超詳細(xì)教程,本文通過多種方法結(jié)合示例代碼給大家詳細(xì)介紹,需要的朋友可以參考下
    2021-07-07
  • Docker搭建私有鏡像倉庫的方法

    Docker搭建私有鏡像倉庫的方法

    這篇文章主要介紹了Docker搭建私有鏡像倉庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11

最新評論