这一节开始之前呢给大家介绍一个把文件上传到服务器里面的工具
vagrant plugin install vagrant-scp
sudo vagrant scp ../chapter5/labs/ docker-node1:/home/vagrant/labs
这里大家需要注意的一点就是如果你用sudo创建的虚拟机,你就一定要使用sudo执行上面的命令不然它会报uid不对的情况,如果你的/home/vagrant/labs没有权限你也可以
sudo chmod 777 labs/
我们首先在后台运行一个名字为mysqlone的mysql容器
sudo docker run -d --name mysqlone -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
stevendeAir:chapter4 steven$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed5f4ee8b42d mysql "docker-entrypoint.s…" 16 seconds ago Up 26 seconds 3306/tcp mysqlone
stevendeAir:comment steven$ docker volume ls
DRIVER VOLUME NAME
local 6e4fbcba13c479fa9dd8a036273661a6700210c21ddfd4bca4504e562fc9ca95
此时我们发现多了一个数据卷,然后我们看一下volume详细的细节
stevendeAir:comment steven$ docker volume inspect 6e4fbcba13c479fa9dd8a036273661a6700210c21ddfd4bca4504e562fc9ca95
[
{
"CreatedAt": "2018-04-22T03:34:29Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/6e4fbcba13c479fa9dd8a036273661a6700210c21ddfd4bca4504e562fc9ca95/_data",
"Name": "6e4fbcba13c479fa9dd8a036273661a6700210c21ddfd4bca4504e562fc9ca95",
"Options": {},
"Scope": "local"
}
]
然后我们在创建一个
sudo docker run -d --name mysqltwo -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
stevendeAir:chapter4 steven$ sudo docker volume ls
DRIVER VOLUME NAME
local 5fc6196e1a061041eb82dfb9094199ff29e9dc42c59adab9da9c223e08f2c80c
local 6e4fbcba13c479fa9dd8a036273661a6700210c21ddfd4bca4504e562fc9ca95
接下来我们把这两个容器停止并删除
sudo docker stop mysqlone mysqltwo
sudo docker rm mysqlone mysqltwo
stevendeAir:chapter4 steven$ sudo docker volume ls
DRIVER VOLUME NAME
local 5fc6196e1a061041eb82dfb9094199ff29e9dc42c59adab9da9c223e08f2c80c
local 6e4fbcba13c479fa9dd8a036273661a6700210c21ddfd4bca4504e562fc9ca95
但是同学们我们的volume还是存在的,但是这个volume的名字有点太长了,不知道大家发现了没有,我们可以给它起个别名,我们先把这两个volume删除
我们重新创建mysqlone
stevendeAir:chapter4 steven$ sudo docker run -d -v mysql:/var/lib/mysql --name mysqltwo -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
526b4bf79c59f0dd50fe1b5c36ed67987d5481d0c15f82828392d1a0b05abb34
stevendeAir:chapter4 steven$ docker volume ls
DRIVER VOLUME NAME
local mysql
此时我们多了一个mysql的volume,那么现在我们就来验证一下到底有没有起作用。。。。我们首先进入到mysqlone 容器里面
stevendeAir:chapter4 steven$ sudo docker exec -it mysqltwo /bin/bash
root@526b4bf79c59:/# mysql -u root
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
create database docker; //我们创建一个数据库
exit
然后我们强制删除正在运行的容器
stevendeAir:chapter4 steven$ sudo docker rm -f mysqltwo
mysqltwo
那么现在我们在创建一个mysqlone的container,我们还用之前的volume看看可不可以
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| docker |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
我们发现mysqltwo的databases是在的,怎么样小伙伴们我这里看的差不多了,你学会了嘛!!!!!!
网友评论