第四節(jié).docker管理應(yīng)用程序數(shù)據(jù)
- voluems:docker管理數(shù)組機文件系統(tǒng)的一部分(var/lib/docker/volumes)
- 官方文檔
- 管理卷
- 卷有匿名卷和指定名字的卷
- docker voluem create nginx_vol #創(chuàng)建指定名字的卷
- docker run -itd --name=nginx_test --mount src=nignx_vol,dst=/usr/share/nginx/html nginx #src為空會創(chuàng)建一個匿名卷
- docker volume create nginx_vol
- docker volume ls
- docker volume inspect nginx_vol
- 卷有匿名卷和指定名字的卷
- 用卷創(chuàng)建一個容器
- docker run -itd --name=nginx_test --mount src=nignx_vol,dst=/usr/share/nginx/html nginx #創(chuàng)建的容器應(yīng)用卷
- docker run -itd --name=nginx_test -v nginx_vol:/usr/share/nginx/html nginx #實現(xiàn)效果同上但是-v只支持數(shù)據(jù)卷不通用,推薦使用上面的
- 清理:
- 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 #創(chuàng)建
- docker voluem ls #列出所有的卷
- docker voluem inspect nginx_vol #查看具體卷的信息
- docker run -itd --name=nginx_test --mount src=nignx_vol,dst=/usr/share/nginx/html nginx #創(chuàng)建的容器應(yīng)用卷
- docker exec -it nginx_test bash #進入容器
- cd /usr/share/nginx/html/#這個目錄與以下那個目錄相當(dāng)于做了個軟連接數(shù)據(jù)會實時同步
- ls
- touch /var/lib/docker/volumes/nginx_vol/_date/
- ls
- bind mounts:可以存儲在宿主機系統(tǒng)的任意位置。
- 官方文檔
- 用卷創(chuàng)建一個容器
- 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
- 注意
- 源文件不存在不會自動創(chuàng)建,會拋出一個錯誤
- 如果掛載的目標在容器中非空目錄,則容器中原有目錄將被隱藏,只顯示目標目錄的文件
- tmpfs:掛載存儲在宿主機系統(tǒng)的內(nèi)存中,而不會寫入宿主機的文件系統(tǒng)