码迷,mamicode.com
首页 > 其他好文 > 详细

docker数据卷

时间:2020-06-26 18:32:46      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:解决   mission   镜像   bash   pre   info   mamicode   ber   pair   

docker容器数据卷

什么是数据卷?

一句话:类似于Redis里面的rdb和aof文件

数据卷能干什么?

容器数据持久化

容器之间继承+数据共享

数据卷添加方式?

1、直接命令添加(-v 有自动创建文件夹功能)

语法:docker run -it -p 8080:8080 -v /宿主机绝对路径目录:/容器内目录 镜像名字

例子:docker run -it -d -p 8888:8080 -v /app/volume/:/usr/local/tomcat/webapps tomcat

查看是否挂载成功:docker inspect 容器id(下图绑定成功)

技术图片

注意:

挂载成功以后容器的文件和宿主机的文件实现共享,可读可写。相互的!

容器宕机以后,在宿主机修改文件。然后再次启动容器且进去该容器,发现文件又同步过来了!

1.1、带权限的命令添加**

语法:docker run -it -p 8080:8080 -v /宿主机绝对路径目录:/容器内目录:【权限】 镜像名字

例子:docker run -it -d -p 8888:8080 -v /app/volume/:/usr/local/tomcat/webapps:ro tomcat

ro 只读 容器的文件主机只可以看,不可以更改!

技术图片

2、DockerFile添加

1、新建目录/app/docker_file_tst,且进来

2、创建一个名为test01.yml的文件

[root@tzh docker_file_tst]# cat test01.yml 
FROM centos
?
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
?
CMD echo "finished,--------success1"
?
CMD /bin/bash

3、build这个yml -----> docker build -f test01.yml -t tzh/centos . 这个 "." 也得添加

[root@tzh docker_file_tst]# docker build -f test01.yml -t tzh/centos
"docker build" requires exactly 1 argument.
See ‘docker build --help‘.
Usage: docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
[root@tzh docker_file_tst]# docker build -f test01.yml -t tzh/centos .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM centos
---> 831691599b88
Step 2/4 : VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
---> Running in bbae433f1aa0
Removing intermediate container bbae433f1aa0
---> feff3a9f82b1
Step 3/4 : CMD echo "finished,--------success1"
---> Running in 1fd4f541a4a0
Removing intermediate container 1fd4f541a4a0
---> 377f83582ef5
Step 4/4 : CMD /bin/bash
---> Running in f91711e00915
Removing intermediate container f91711e00915
---> f5892bf5a85c
Successfully built f5892bf5a85c
Successfully tagged tzh/centos:latest
查看刚刚做的镜像
[root@tzh docker_file_tst]# docker images
REPOSITORY     TAG         IMAGE ID         CREATED         SIZE
tzh/centos     latest     f5892bf5a85c     2 minutes ago   215M

4、run 容器--------> docker run -it tzh/centos

查看容器内的数据卷位置

[root@d7294375a4db /]# pwd
/
[root@d7294375a4db /]# ls
bin dataVolumeContainer1 dataVolumeContainer2 dev etc hom

5、宿主机的对应目录在哪里呢?

docker inspect 容器id

技术图片

注意:

Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可

语法:docker run -it -p 8080:8080 -v /宿主机绝对路径目录:/容器内目录 --privileged=true tomcat 镜像名字

例子:docker run -it -d -p 8888:8080 -v /app/volume/:/usr/local/tomcat/webapps --privileged=true tomcat

docker数据卷

标签:解决   mission   镜像   bash   pre   info   mamicode   ber   pair   

原文地址:https://www.cnblogs.com/hsyw/p/13195702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!