美文网首页
容器数据卷

容器数据卷

作者: arkliu | 来源:发表于2022-12-10 16:24 被阅读0次

docker是将应用和环境打包成一个镜像,如果数据都在容器中,那么删除容器后,数据就丢失了,
容器之间有一个数据共享的技术,目录的挂载,即将容器内的目录,挂载到linux宿主机上

使用-v命令挂载数据卷

docker run -it -v 外部宿主机目录:容器内目录 要启动的镜像名称 /bin/bash

lh@lh-pc:~$ docker run -it -v /home/lh/test:/home centos /bin/bash
[root@deaea451f3a1 /]#

上述命令挂载完以后,我们宿主机上/home/lh/test目录下的所有修改会同步到容器内的/home目录,容器内/home下的内容,也会同步到宿主机的/home/lh/test目录。

查看容器的挂载内容

使用docker inspect 容器id 来查看

lh@lh-pc:~/test$ docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
deaea451f3a1   centos    "/bin/bash"   27 minutes ago   Up 27 minutes             beautiful_williams
lh@lh-pc:~/test$ docker inspect deaea451f3a1
image.png

mysql同步数据

下载镜像

docker pull mysql:5.7

运行容器并做数据挂载,还需要配置mysql密码

-d 后台运行
-p  端口映射
-v  数据卷挂载
-e  环境配置
--name  容器名字
lh@lh-pc:~$ docker run -d -p 3310:3306 -v /home/mysql/config:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
c775e8129092ff4453b05976cda5d0c5680f71ab4bfff64ea3ffca650c4b82df
lh@lh-pc:~$ 

匿名挂在和具名挂载

匿名挂载

docker run -d -P --name nginx01 -v /etc/nginx nginx
lh@lh-pc:~$ docker volume ls
DRIVER    VOLUME NAME
local     b9611404bace9defeaa4661eaf05c229e66de4088662109040d5753de8c25bdd
local     eb6a48aa076af428b1ae9b4fd69398e47a31d6c4e6d4cc44fe7fd0a8a18f7b60

具名挂载

lh@lh-pc:~$ docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
51e4211f79e90652034e7c1a3cbf6c7eead259e6d2dfcda27111bc9fb6b2f87a
lh@lh-pc:~$ docker volume ls
DRIVER    VOLUME NAME
local     b9611404bace9defeaa4661eaf05c229e66de4088662109040d5753de8c25bdd
local     eb6a48aa076af428b1ae9b4fd69398e47a31d6c4e6d4cc44fe7fd0a8a18f7b60
local     juming-nginx

image.png

查看下这个卷

lh@lh-pc:~$ docker volume inspect juming-nginx
[
    {
        "CreatedAt": "2022-11-17T10:37:30+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data",
        "Name": "juming-nginx",
        "Options": null,
        "Scope": "local"
    }
]
![

image.png](https://img.haomeiwen.com/i13167756/c3cab1732203064a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
所有的容器,在没有指定目录的情况下挂载,挂载的目录都是在/var/lib/docker/volumes

设置挂载权限

只读挂载,表示这个路径只能在宿主机上操作,容器内部无法操作
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
可读可写挂载
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

相关文章

  • Docker数据管理

    容器管理数据方式: 数据卷:容器内数据直接映射到本地主机环境; 数据卷容器:使用特定容器维护数据卷。 数据卷 类似...

  • 【现学现忘Docker基础】— 21.Docker容器数据卷(一

    1、什么是Docker容器数据卷 Docker容器数据卷,即Docker Volume(卷)。 当Docker容器...

  • 【现学现忘Docker基础】— 27.数据卷容器

    1、数据卷容器的说明 (1)什么是数据卷容器 一个容器中已经创建好的数据卷,其它容器通过这个容器实现数据共享。那么...

  • docker 之数据卷

    数据卷容器 数据卷容器也是一个容器,但目的是专门用来提供数据卷供其他容器挂载。下面启动这个名为dbdata的容器,...

  • docker容器数据卷

    什么是容器数据卷 把docker容器运行产生的数据持久化,相当于容器的外置硬盘 容器数据卷的特点 1.数据卷可在容...

  • 第六章 数据管理

    1、容器中管理数据的两种主要方式 1)数据卷2)数据卷容器 2、数据卷 数据卷是一个可供容器使用的特殊目录,它绕过...

  • docker学习——docker数据管理

    一.基本概念 数据卷:容器内数据直接映射到本地主机环境 数据卷容器:使用特定容器维护数据卷 二 .相关操作 1.数...

  • Docker-14-数据卷容器

    述 数据卷容器就是一个专门用来挂载数据卷的容器,该容器主要是供其他容器引用和使用,所谓的数据卷容器,实际上就是一个...

  • Docker 数据管理

    Volume(数据卷) 将Docker主机数据挂载到容器 创建数据卷 查看数据卷详细信息 用卷创建一个容器,让这个...

  • 数据卷容器

    1.创建一个数据卷容器 2. 创建两个容器,同时挂载数据卷容器

网友评论

      本文标题:容器数据卷

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