docker簡單介紹---網絡端口管理


一、查看docker支持的網絡類型

docker network ls

bridge:容器使用虛擬交換機的進行通信

host:使用宿主機的網絡

none:只給容器分配一個lo的網卡,無法和外界進行通信

使用 docker run --network {host|none|bridge}指定通信方式

 

bridge:類似於虛擬機的物理橋接模式,容器與Host屬於同一網段並且網絡是互通的,運行容器默認是這種網絡橋接模式,使用 docker run -it 容器id /bin/bash,

在容器中使用yum -y install net-tools 就可以使用ifconfig查看容器的IP地址

docker0為虛擬交換機,使用brctl show來查看虛擬交換機開通的虛擬接口,如果沒有brctl則需要安裝:yum -y install bridge-utils

====================================================================

查看網絡映射

iptables -t nat -L -n

端口映射

隨機映射:

docker run -d -P --name duankou 鏡像名稱    (docker ps -l 查看隨機端口號)

指定映射端口:

docker run -d -p 8080:80 -name my_nginx 鏡像名稱    (將容器的80端口映射給本地host的8080端口)

docker run -d -p  192.168.1.100:8080:80 -name my_nginx  鏡像名稱 (將容器的80端口映射給本地192.168.1.100的8080端口,適用於多網卡映射)

指定多個映射端口

docker run -d -p 8080:80 -p 443:443 -name my_nginx 鏡像名稱    (將容器的80端口映射給本地host的8080端口,將容器的443端口映射給本地host的443端口)

共享容器網絡(可以理解為一台主機上運行倆個進程)

docker run -it  --name web1 --rm  容器id或者名稱  /bin/bash

然后在容器中執行ifconfig

 

 創建另外一個容器

docker run -it --network container:cfd9393ea161 --name nginx-2 --rm 另外一個鏡像id或者名稱 /bin/bash   #--network指定的是需要共享網絡的容器

因為網絡已經共享了一個開了80端口的容器,所以我們將nginx的端口改為8080,然后啟動,  這樣在倆個容器中可以看到倆個容器啟動的nginx了,

可以理解為共享網絡,但是其它空間是不共享的,

 

修改docker0的ip地址:

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://4lymnb6o.mirror.aliyuncs.com"],
"bip":"10.1.0.1/16"
}

添加一個bip字段,記得使用,隔開字段,屬於python的字典格式

然后重啟docker即可 systemctl restart docker

 

修改docker0的DNS地址

{
"registry-mirrors": ["https://4lymnb6o.mirror.aliyuncs.com"],
"bip": "10.1.0.1/16",
"dns": ["123.150.150.150","8.8.8.8"]

}

重啟docker'即可,添加一個dns字段 

docker run -d --name nginx-1 --hostname nginx-1 --rm -p 11111:80 498 -g 'daemon off;'      #498為鏡像id的前三位

進入到容器中,發現ip地址和dns地址都修改過來了  

 

==============================================================================================================================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM