Docker的【目录挂载】与【数据卷挂载】入门案例

本文详细介绍了Docker的目录挂载和数据卷挂载,包括挂载的目的、如何强制删除容器、指定目录挂载、创建及查看数据卷、以及数据卷在容器中的应用。通过实例展示了如何在宿主机和容器之间同步文件,并强调了数据持久化的意义。
摘要由CSDN通过智能技术生成

目录

挂载的目的

目录挂载

强制删除容器

指定目录挂载

进入容器的挂载目录创建文件

退出容器并在宿主机修改文件

进入容器的挂载目录查看并修改文件

数据卷挂载

创建数据卷

查看存在的数据卷

查看指定数据卷的详细信息

运行容器并实现数据卷的挂载

进入容器并创建文件 


挂载的目的

docker挂载的目的主要是为了让容器运行期间产生的一些文件永久性的保存在宿主机上(避免容器停止之后找不到容器运行期间产生的文件)。下面以docker运行tomcat容器为案例介绍。

目录挂载

为了查看容器方便,我们先把已经存在的容器全部强制删除掉。

强制删除容器

容器即使在运行当中也可以使用强制删除命令将容器删除。

docker rm -f 容器id

 

指定目录挂载

在容器运行的时候,可以在宿主机中指定一个目录或文件与容器中的目录或文件进行一个挂载。

上面就是启动一个tomcat容器并起了一个别名为cat1,并将宿主机的 /usr/app 目录与容器中的 /opt/app 目录进行一个挂载,注意:即使宿主机不存在 /usr/app 这个目录,-v 指令也会主动创建目录。 

进入容器的挂载目录创建文件

进入容器的命令:

docker exec -it cat1 bash

在容器的挂载目录下创建文件:

touch /opt/app/f1.txt

 

退出容器并在宿主机修改文件

退出容器命令:exit

切换到宿主机的挂载目录并编辑文件:

cd /usr/app

vim f1.txt

进入文件后键入 i 即可编辑文件,编辑完之后先按 Esc,然后键入 :wq 保存并退出,如果键入 :q!不保存的退出。 

 

可以看到,我们的 f1.txt 文件本来是在容器里面创建的,可是现在可以在宿主机里面查看到这个文件,这就是挂载。

进入容器的挂载目录查看并修改文件

重新进入容器并查看一下我们挂载目录下的文件,因为我们刚刚只是编辑了宿主机里面的文件,容器里面的文件我们没有碰它,我们现在看一下容器里面的文件内容有没有变化。

可以看到,在宿主机里面对挂载目录进行操作都会直接影响到容器里面的挂载目录,反之也是一样的 。

在容器里面编辑文件内容的命令:

echo 1234565 > /opt/app/f2.txt

1234565是 f2.txt 文件的内容。

数据卷挂载

其实数据卷的挂载与目录挂载类似,只不过目录挂载是自己定义宿主机要挂载的目录,而数据卷挂载是在创建数据卷的时候会在宿主机默认创建一个目录来进行挂载。

创建数据卷

创建数据卷命令:

docker volume create my-vol

创建一个名为 my-vol 的数据卷。 

查看存在的数据卷

可以使用下面命令查看已经存在的数据卷:

docker volume ls

查看指定数据卷的详细信息

使用如下命令可以查看指定数据卷的详细信息,在这些信息里面可以看到宿主机的挂载目录。

docker inspect my-vol

 

运行容器并实现数据卷的挂载

运行容器并实现数据卷的挂载:

docker run -d --name cat2 -v my-vol:/opt/app tomcat

my-vol 就代表了宿主机的挂载目录,/opt/app 就是容器的挂载目录。

进入容器并创建文件 

容器运行之后就可以进入容器了。

进入容器并创建文件:

docker exec -it cat2 touch /opt/app/f2.txt

在容器的挂载目录下创建了一个名为 f2.txt 的文件,这条命令会在创建完文件之后自动退出容器。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值