多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#Docker:存储 ###存储 ``` // 查看镜像或容器的底层信息 docker inspect centos ``` ``` docker run -i -t --name test1 centos bash echo 'hello www.baidu.com' > hello.txt cat hello.txt // 会输出文件里面的内容 exit ``` ``` docker run -i -t --name test2 centos bash cat hello.txt // 会提示 cat: hello.txt: No such file or directory ``` 虽然test1还有test2都是基于centos这个镜像创建的,不过它们都拥有一个各自的可以读写的一个文件层,新创建的文件或者被修改的已有的文件都会被放到这个文件层里面,不会影响到镜像本身或者其它的使用这个镜像创建的容器 ``` docker rm test1 test2 ``` 删除容器的时候,这些在容器层上面的文件也会被删除掉,如果有一些数据想要一直保存的话,比如说:web服务器里面的日志,数据库管理系统里面的数据,我们可以去为容器创建一个数据盘,然后把这些要常期保存的数据放到这些数据盘上面 ###指定主机目录作为数据盘 ``` docker run -v /c/Users/zhuli/Desktop/practise:/mnt -i -t --name=db centos bash cd /mnt touch data1 exit docker rm db 切换到/c/Users/zhuli/Desktop/practise目录下,存在data1这个文件 ``` ###数据容器 我们可以去创建一个数据容器,然后让其它的容器可以去使用这个数据容器来作为它们的数据盘 ``` docker create -v /mnt --name dbcenter centos docker run --volumes-from dbcenter --name db1 -i -t centos bash cd /mnt touch data1 ls exit docker run --volumes-from dbcenter --name db2 -i -t centos bash cd /mnt ls ``` ![](https://box.kancloud.cn/80839d7084eb72a6b04d764f4d6a4d29_690x268.png) ###管理数据盘 ``` // 查看在主机上创建的数据盘 docker volume ls // 查看已经没有容器使用的数据盘 docker volume ls -f dangling=true // 删除已经没有容器使用的数据盘 docker volume rm ab7f997e4db67f635bd725168e1c6b42754a005b3eea5c0611d9c37f9b4ef143 // 查看数据盘的底层信息 docker volume inspect 187856df2edfce79bde7f36d82500d789faed20bc5bc69194d5ebee79c44e06c // 如果容器(数据容器)正在运行中,上面的命令会报错,需要加-f选项来进行强制删除 docker rm -vf db1 db2 // 删除容器(数据容器)并删除它的数据盘 docker rm -v dbcenter // 查看数据盘是否已经被删除 docker volume ls ```