新人也能做的Docker项目 (8) Docker bind volumes

好的,让我们直接开始我们的最后一讲吧,bind mounting。

volume mount 和 bind mounting的区别是什么?

主要的区别是bind mount在host machine上创建persistent volume 。而volume mounting则是在docker host 上创建,因此我们需要在volume mounting的时候提供整个目录名。

用实践来体会不同

我们先创建一个目录

mkdir data

输入下列命令,验证data目录已经被创建

ls -lrt

输入下列命令,并记住输出:

pwd

这条命令会显示当前路径,在接下来的输入里我们要使用到该路径。

使用下列命令创建一个容器

docker run -itd -v [data目录所在路径]:/www ubuntu

如:

docker run -itd -v /home/user/data:/www ubuntu

输入下列命令查看容器是否被创建:

docker ps

接下来我们要连接到容器中:

docker exec -it [容器ID] [COMMAND]

在交互模式下

跳转到www目录内

cd  /www/

创建一个txt文件

echo "Test Data"> test.txt

退出交互模式

exit

回到host machine后

跳转到data目录下

cd data

查看目录下的文件

ls

输出中应该可以看到我们创建的txt文件

我们看看现在我们机器里有多少volumes了

docker volume ls

输出应该如下:

DRIVER    VOLUME NAME
local     250b045b133846fc2c0a2029293db67d3242f55ed57067629c8e17460d3580c1
local     data_volume

发现了么?我们data目录不存在于docker volume列表下面。

接下来我们要把这个data目录mounting到另一个容器上

docker run -itd --mount type=bind,source=[data目录地址], target=/www ubuntu

如:

docker run -itd --mount type=bind,source=/home/user/data, target=/www ubuntu

查看容器

docker ps

连接容器

docker exec -it [容器ID] [COMMAND]

在该容器的www目录里我们会找到txt文件,验证后,我们就可以退出该交互模式了

接下来我们学一点删除操作

先停止所有容器

docker stop $(docker ps -aq)

删除所有容器

docker rm $(docker ps -aq)

显示所有volumes

docker volume ls

然后指定删除某个volume
如:

docker volume rm data_volume

总结

我这个系列的连载就到此为止了,希望各位至今和我一样都沉淀或学习了一些新的东西。如果想进一步学习的话,可以看看我的Kubernetes连载系列,同样会是以项目实践的方式进行学习沉淀。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值