docker的持久化

TNTMysql工程师 2020-05-10

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的持久化

 #删除容器

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

docker的持久化

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

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

docker的持久化

 volme映射到本机的目录。

 docker的持久化

 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

相关推荐