(1)創建一個叫 my-net 的 bridge 類型的網絡
(2)查看都有哪些網絡
(3)運行一個容器井連接到新建的 my-net 網絡
(4)運行一個容器井加入到 my-net 網絡
2:Host 模式
由于使用了 Host 模式,容器會直接使用宿主機的網絡端口,因此可以直接在宿主機上通過 localhost 訪問容器內的服務,使用 ifconfig 命令可以看到容器的網絡和宿主機的是一致的。
3:container 模式
創建 host2 容器共享 host1 容器的網絡
査詢 host1 容器的網絡
査看 host2 容器的網絡,確認和 host1 容器的網絡一致
4:None 模式
5:0verlay 模式
6:Macvlan 模式
7:自定義網絡模式
二:端口映射
1:端口映射
(1)-P(大寫):指的是容器應用 PORT 隨機映射到宿主機上的 PORT自動綁定所有對外提供服務的容器端口,映射的端口將會從沒有使用的端口池中自動隨機選擇,但是如果連續啟動多個容器的話,則下一個容器的端口默認是當前容器占用端口號+1。生產場景一般不使用隨機映射,好處是由 docker 分配,宿主機端口不會沖突。
(2)-p(小寫):(宿主機 PORT:容器 PORT)
宿主機 IP 不寫表示“0.0.0.8”,宿主機 PORT 不寫表示隨機端口,容器 PORT 必須指定,可以同時對多個端口進行映射綁定。
指定端口映射,在標準化場景下使用頻率高。
端口的取值范圍 32768--61000 之間
2:隨機映射端口
3:指定映射端口
(1)固定端口
(2)宿主機隨機端口
三:容器互聯
1:使用--1ink 選項(已逐漸被棄用)
(1)創建源容器
(2)創建接收容器
(3)測試容器互聯
四:容器間通信實現案例
1:常用選項及解釋
(1)--driver,-d
(2)--subnet
(3)--gateway
(4)--ip-range
(5)--internal
(6)--attachable
2:容器間通信步驟
(1)創建自定義網絡
(2)創建一個不在此自定義網絡的容器
(3)創建兩個容器,并加入自定義網絡
(4)登錄到容器,測試通信結果
第二節:數據持久化技術
一:Docker 的數據管理
1:什么是數據卷
數據卷是一個可供一個或多個容器使用的特殊目錄,它繞過了容器的文件系統,直接將宿主機上的目錄或文件掛載到容器內部。這意味著即使容器被刪除,數據卷中的數據也不會丟失,從而實現了數據的持久化存儲。
2:數據卷的作用
(1)數據持久化
容器的生命周期可能是短暫的,當容器被刪除時,其內部文件系統中的數據也會隨之消失。而數據卷可以將數據存儲在宿主機上,確保數據不會因為容器的刪除而丟失。
(2)數據共享
多個容器可以同時掛載同一個數據卷,從而實現容器之間的數據共享。這對于需要共享配置文件、日志文件或其他數據的應用場景非常有用。
(3)數據備份和恢復
由于數據卷中的數據存儲在宿主機上,因此可以方便地進行備份和恢復操作。
(4)分離數據和應用
將數據存儲在數據卷中,可以使容器的鏡像更加輕量級,只包含應用程序本身,而將數據分離出來,提高了容器的可移植性和可維護性。
2:創建匿名數據卷
3:創建具名數據卷
(1)創建具名數據卷
(2)在創建容器時掛載具名數據卷
4:共享容器數據卷?
5:掛載主機目錄作為數據卷
(1)將宿主機上的/data1 目錄掛載到容器內的/usr/local/apache2/htdocs 目錄
docker run -dit -p 8088:80-v /data1:/usr/local/apache2/htdocs --name webe6 httpd
(2)創建測試文件
echo "ni hao">/data1/index.html
(3)訪問服務
curl 192.168.10.101:8080
(1)在宿主機創建掛載目錄
mkdir -p /www/{conf,html}
(2)準備數據
將編輯好的 nginx 配置文件拷貝到/www/conf
將網站代碼拷貝到/www/html
(3)創建容器
docker run -d -p 9090:80
-v /www/conf/nginx.conf:/etc/nginx/nginx.conf
-v/www/html:/www/html
-v/www/nginx/log:/var/log/nginx
--name webo8 nginx "nginx"