docker.管理应用程序数据

作者: 小短腿电工 | 来源:发表于2019-03-09 09:25 被阅读18次

    第四节.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:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统

    相关文章

      网友评论

        本文标题:docker.管理应用程序数据

        本文链接:https://www.haomeiwen.com/subject/nzojpqtx.html