zoukankan      html  css  js  c++  java
  • Docker进阶之七:管理应用程序数据

    管理应用程序数据:Volume

    Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumesbind mountstmpfs
    volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。
    bind mounts:可以存储在宿主机系统的任意位置。
    tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统。
              

     
    管理卷:

    # docker volume create nginx-vol

    宿主机存储地址:/var/lib/docker/volumes/

    # docker volume ls
    # docker volume inspect nginx-vol

    [
        {
            "CreatedAt": "2019-03-07T13:28:47+08:00",
            "Driver": "local",
            "Labels": {},
            "Mountpoint": "/var/lib/docker/volumes/nginx-vol/_data",
            "Name": "nginx-vol",
            "Options": {},
            "Scope": "local"
        }
    ]

    用卷创建一个容器:(数据卷nginx-vol 相当于 宿主机和容器之间创建一个软连接 容器删除,数据卷还在)

    # docker run -d -it --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx

    bind方式创建容器(切记源目录必须存在)

    # docker run -d -it --name=nginx-test1 --mount type=bind,src=/app/www,dst=/usr/share/nginx/html nginx

    适用场景 java项目中打包后 targer/*.war 或者 targer/*.jar  直接挂载到容器中实现项目直接部署
    清理:
    # docker container stop nginx-test

    # docker container rm nginx-test

    # docker volume rm nginx-vol

    删除所有容器:

    # docker rm -f $(docker ps -q -a)

    注意:
    1. 如果没有指定卷,自动创建。

    2. 建议使用—mount,更通用。

    官方文档:https://docs.docker.com/engine/admin/volumes/volumes/#start-a-container-with-a-volume
  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/521football/p/10489175.html
Copyright © 2011-2022 走看看