Docker網絡及命令


Docker常用命令

docker version #查看版本
docker search centos #搜索可用docker鏡像
docker images 查看當前docker所有鏡像
docker pull  centos 下載鏡像
cat centos.tar |docker import - centos6_newname #導入Docker 導入鏡像
docker export 容器id > centos6.tar #導出鏡像
docker run centos echo "hello world" #在Docker容器中運行hello world
docker run centos yum install ntpdate #在容器中安裝ntpdate的程序
docker ps -l 命令獲取最后一個容器的id,docker ps -a 查看所有的容器
運行docker commit 提交剛修改的容器
docker commit  313121 centos:v1
docker run -i -t -d centos /bin/bash 在容器里啟動一個/bin/bash shell環境,可以登錄進入操作,其中-t tty,表示打開一個終端的意思,-i interactive,表示可以交互輸入,-d表示在后台啟動,以daemon方式啟動。  
docker  run  -d  centos:v1  /bin/bash 
Docker  stop  id 關閉容器
Docker  start  id 啟動某個容器
docker  rm  id 刪除容器,docker  rmi  images刪除鏡像
docker  run  -d  -p  80:80  -p 8022:22   centos:v2,解析:-p指定容器啟動后docker上運行的端口映射及容器里運行的端口,80:80,第一個80表示docker系統上的80,第二個80表示docker虛擬機里面的端口。用戶默認訪問本機80端口,自動映射到容器里面的80端口。
docker  exec   -it  id  /bin/bash 進入容器終端
docker  exec  id ifconfig查看容器的IP地址;
Docker  inspect id |grep -i ipaddr查看容器IP地址;
Docker  exec  df -h查看容器的磁盤分區信息;

批量啟動多台nginx web服務

for i in `seq  10 99 `  ;do docker run -itd -p 80$i:80 docker.io/nginx ;done

Docker網絡

1)Host模式詳解:

默認Docker容器運行會分配獨立的Network Namespace 隔離子系統,基於host模式,容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Network Namespace,容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主主機的IP和端口。

會共享物理主機的IP

2)Container模式詳解

Container模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace 而不是和宿主主機共享。

即新創建的容器不會創建自己的網卡,配置自己的IP,而不是和一個指定的容器共享IP、端口。同樣兩個容器除了網絡方面之外,其他的如文件系統、進程列表等還是隔離的。

 

3)None模式詳解

None模式與其他的模式都不同,如果處理None模式,Docker容器擁有自己的Network Namespace,但是並不為Docker容器進行任何網絡配置。也就是說該Docker容器沒有網卡、IP、路由等信息,需要手工為Docker容器添加網卡、配置IP等,典型Pipework工具為Docker容器指定IP等信息;

4)Bridge橋接模式

Bridge 模式是Docker 默認的網絡模式,該模式會為每一個容器分配Netwrok Namespace、設置IP、路由等配置 默認會將Docker容器連接到一個虛擬網橋交換機Docker0

Docker Bridge 創建過程:

1)首先宿主機上創建一對虛擬機網卡veth pair 設備,veth設備總是成對出現的,組成了一個數據的通道,數據從一個設備進入,就會從另外一個設備出來,veth設備常用來連接兩個網絡設備。

2)Docker將veth pair 設備的一端放在新創建的容器中,並命令為eth0,然后將另一端放在宿主機中,以vethxxx這樣類似的名字命名,並將整個網絡設備加入到docker0網橋中,可以通過brctl show命令查看。

3)從docker0子網中分配一個IP給容器使用,並設置docker0的IP地址為容器的默認網關。

4)此時容器IP與宿主機能夠通信,宿主機也可以訪問容器中的IP地址,在Bridge模式下,連在同一網橋上的容器之間可以相互通信,同時容器IP,需要通過NAT將容器IP的port映射為宿主機的IP和port。

 


免責聲明!

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



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