docker的持久化

Posted meml

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker的持久化相关的知识,希望对你有一定的参考价值。

1、volume

#启动一个容器 -v定义volume的名字、volume的目录-e是环境变量   mysql_ALLOW_EMPTY_PASSWORD允许密码为空

docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

#进入容器

docker exec -it mysql1 /bin/bash

#进入数据库并创建一个库

mysql -uroot

技术图片

 

 

 

 #删除容器

docker rm -f mysql1

#再创建一个容器

docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

#进入容器

docker exec -it mysql2 /bin/bash

#进入数据库并查库

mysql -uroot

技术图片

 

 发现,把容器删了,在创建一个容器这个数据还在。

 

是因为我在创建第一个容器时,创了一个volume,再删除容器时候这个volume并没有删除。当再次创建容器时候继续使用这个volme,所以数据就还在

技术图片

 

 volme映射到本机的目录。

 技术图片

 2、bind mouting

#创建一个网页

echo meml > /home/index.html

ls /home/
index.html ml

#启动一个容器 -v把/home目录映射到容器的/usr/share/nginx/html 目录

 docker run -d -v /home/:/usr/share/nginx/html --name nginx -p 80:80 nginx
ff21c860965f1d7d744cd22a2f92bebaa93b034f6c67aa8f32a48054ace1f93e

#测试

 curl 127.0.0.1

meml
#测试

docker exec -it nginx /bin/bash

cd /usr/share/nginx/html

ls (发现有下面两个东西,正是在/home里面的)

index.html ml

以上是关于docker的持久化的主要内容,如果未能解决你的问题,请参考以下文章

Hello Docker——Docker数据持久化

如何持久化docker中的环境变量

Hello Docker——Docker数据持久化

Docker存储

Docker 中的 Graylog 持久化

docker的持久化存储和共享存储和网络架构