- 目錄掛載
如果主機目錄為空,則容器內也為空
-v表示目錄掛載 冒號前面的是主機上的目錄,冒號后面的是docker容器里面的地址
修改主機上的文件,發現docker容器里面的內容也隨之改變。 同樣修改docker容器里面的內容,主機上的文件內容也隨之改變。
- 卷映射
a )跟目錄掛載不同的是,卷映射時以容器內的文件為準。容器內有內容,則把容器內的內容映射到主機的卷上。
目錄掛載時,如果主機沒有內容,則容器對應的位置也沒有內容。
b) 卷映射命令與目錄掛載一樣,也是用-v。用卷名稱(不能用./或者/等路徑字符)。 映射的文件對應的目錄在/var/lib/docker/volumes/{卷名稱}
。
docker volume 查看卷的信息
- docker網絡
docker機制:每一個容器啟動時都會加入docker創建的網絡docker0。docker為每一個創建的容器分配一個ip,容器之間可以通過分配的ip+容器內部端口互相訪問。
ip a
命令查看網絡
創建兩個應用,放在兩個容器中。查看這兩個應用的網絡信息
docker 創建的網絡。網關為172.17.01.
此時app1服務的docker網絡ip為172.17.02. 服務端口為80(docker容器端口), app2服務的docker網絡ip為172.17.03,服務端口為80(docker容器端口,而非外部訪問端口). 這時進入app1中訪問app2服務 curl http://172.17.03:80 即可
自定義網絡
使用docker創建的網絡的問題:容器每次創建后,ip是可以變的。 通過ip訪問,容器之前的訪問會錯亂。因此我們需要自定義網絡,容器創建時指定自定義的網絡,容器名作為容器的域名來訪問。
創建自定義網絡mynet
創建容器應用指定mynet網絡
此時,進入app1服務,訪問app2. http://app2:80
(域名即ip)