docker.管理應用程式資料
摘要:
第四節.docker管理應用程式資料
voluems:docker管理陣列機檔案系統的一部分(var/lib/docker/volumes)
官方文件
...
第四節.docker管理應用程式資料
-
voluems:docker管理陣列機檔案系統的一部分(var/lib/docker/volumes)
- 官方文件
-
管理卷
-
卷有匿名卷和指定名字的卷
- docker voluem create nginx_vol #建立指定名字的卷
- docker run -itd --name=nginx_test --mount src=nignx_vol,dst=/usr/share/nginx/html nginx #src為空會建立一個匿名卷
- docker volume create nginx_vol
- docker volume ls
- docker volume inspect nginx_vol
-
卷有匿名卷和指定名字的卷
-
用卷建立一個容器
- docker run -itd --name=nginx_test --mount src=nignx_vol,dst=/usr/share/nginx/html nginx #建立的容器應用卷
- docker run -itd --name=nginx_test -v nginx_vol:/usr/share/nginx/html nginx #實現效果同上但是-v只支援資料卷不通用,推薦使用上面的
-
清理:
- docker container stop nginx_test
- docker container rm nginx_test [docker rm -f $(docker ps -q a)]
- docker volume rm nginx_vol
-
例項
- docker voluem create nginx_vol #建立
- docker voluem ls #列出所有的卷
- docker voluem inspect nginx_vol #檢視具體卷的資訊
- docker run -itd --name=nginx_test --mount src=nignx_vol,dst=/usr/share/nginx/html nginx #建立的容器應用卷
- docker exec -it nginx_test bash #進入容器
- cd /usr/share/nginx/html/#這個目錄與以下那個目錄相當於做了個軟連線資料會實時同步
- ls
- touch /var/lib/docker/volumes/nginx_vol/_date/
- ls
-
bind mounts:可以儲存在宿主機系統的任意位置。
- 官方文件
-
用卷建立一個容器
- docker run -itd --name=nginx_test --mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx
- docker run -itd --name=nginx_test -v /app/wwwroot:/usr/share/nginx/html nginx #-v不支援bind
-
驗證繫結
- docker inspect nginx_test
-
清理
- docker container stop nignx_test
- docker container rm nignx_test
-
注意
- 原始檔不存在不會自動建立,會丟擲一個錯誤
- 如果掛載的目標在容器中非空目錄,則容器中原有目錄將被隱藏,只顯示目標目錄的檔案
- tmpfs:掛載儲存在宿主機系統的記憶體中,而不會寫入宿主機的檔案系統