docker掛載
1.綁定掛載(Bind Mounts):綁定掛載是將主機上的文件或目錄掛載到容器中。
docker run -v /host/path:/container/path image_name
2.卷掛載(Volume Mounts):卷掛載將 Docker 數據卷掛載到容器中。數據卷是一個可供一個或多個容器使用的特殊目錄,用于存儲數據和共享數據。它獨立于容器的生命周期,容器可以在掛載點讀取和寫入數據,就像使用普通目錄一樣。可以通過在運行容器時使用 -v 或 --mount 參數指定卷掛載。
docker run -v volume_name:/container/path image_name
相當于掛載宿主機目錄下的卷 /var/lib/docker/volumes/volume_name, 到容器的目錄
3.臨時文件系統(tmpfs)掛載:臨時文件系統掛載允許將臨時文件系統掛載到容器的指定路徑。與綁定掛載和卷掛載不同,臨時文件系統掛載僅在容器的生命周期內存在,并且不會對主機文件系統產生影響。可以通過在運行容器時使用 --tmpfs 參數來指定臨時文件系統掛載。例如:
docker run --tmpfs /container/path image_name
原文鏈接:https://blog.csdn.net/weixin_49171365/article/details/131506045
docker 鏡像結構
分層結構,不同的模塊可以有共享的層。
DockerFile
1.基礎命令
2.根據dockerfile構建鏡像
docker網絡
docker容器里運行的所有容器mysql redis nginx等在同一個網段中,因為他們有相同的網關。
安裝docker會默認創建一張虛擬的網卡docker0
網卡充當網橋的作用,所有和他相連的分配到一個ip,可以相互訪問
不同容器的ip地址是網橋給分配的,重啟后ip地址可能會變。
在java代碼中配置mysql的ip地址會有問題
自定義網絡
加入自定義網絡的容器可以互相訪問,
并且可以通過容器名互相訪問,不需要知道容器名。
docker network create heima
新加入的網卡
容器加入網絡 docker network connect heima nginx
docker inspect nginx 查看 多出一個network
docker 部署黑馬商城
視頻內容p34
=====手動部署=====1.打包java jar包,通過dockerfile構建java鏡像,啟動docker run -d --name hm -p 8080:8080 --network heima hmall2.掛載mysqldocker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123 \-v /root/mysql/data:/var/lib/mysql \-v /root/mysql/init:/docker-entrypoint-initdb.d \-v /root/mysql/conf:/etc/mysql/conf.d \mysql2.mysql連接網絡
docker network connect heima mysql18080 用戶端
18081 服務端3.掛載nginxdocker run -d \--name nginx \-p 18080:18080 \-p 18081:18081 \-v /root/nginx/html:/usr/share/nginx/html \-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \--network heima \nginx
docker compose
docker compose描述信息和docker run差不多,語法上會有些差異
左側 docker run構建容器,右側docker compose構建容器
直接上傳compose文件
docker compose up -d 創建了一個鏡像,默認名字是rooot
創建了容器
docker compose down
容器全部移除,網絡全部移除