Docker进阶之六:管理应用程序数据

Posted 521football

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

 

以上是关于Docker进阶之六:管理应用程序数据的主要内容,如果未能解决你的问题,请参考以下文章

docker进阶——数据管理与网络

容器技术Docker K8s 36 容器服务ACK基础与进阶-应用与发布管理

容器技术Docker K8s 35 容器服务ACK基础与进阶-应用与发布管理

Docker 镜像之存储管理

Docker 持续进阶

详解Docker——你需要知道的Docker进阶知识三