意义:不能随着容器得删除而把数据删除
创建一个mysql
docker run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
查看volume
[root@docker-node1 vagrant]# docker volume ls
DRIVER VOLUME NAME
local f60b9180661fe1335c4837b9ca0cb44e7555dcc8888849797e0345c7aa61a802
[root@docker-node1 vagrant]# docker volume inspect f60b9180661fe1335c4837b9ca0cb44e7555dcc8888849797e0345c7aa61a802
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/f60b9180661fe1335c4837b9ca0cb44e7555dcc8888849797e0345c7aa61a802/_data",
"Name": "f60b9180661fe1335c4837b9ca0cb44e7555dcc8888849797e0345c7aa61a802",
"Options": {},
"Scope": "local"
}
]
实验发现,删除docker的容器之后,volume并没有删除
docker volume ls
还是存在的
docker volume 默认不友好
删除docker volume
docker volume rm [volume id]
docker volume ls 这是为空
创建一个指定位置的docker 存储
docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
[root@docker-node1 vagrant]# docker volume ls
DRIVER VOLUME NAME
local mysql
[root@docker-node1 vagrant]# docker volume inspect mysql
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/mysql/_data",
"Name": "mysql",
"Options": {},
"Scope": "local"
}
]
进入容器:
[root@docker-node1 vagrant]# docker exec -it mysql1 /bin/bash
root@23e96f17ca27:/# musql -uroot
创建一个数据库
create database docker;
create database jesse;
退出容器,删除容器
[root@docker-node1 vagrant]# docker volume ls
DRIVER VOLUME NAME
local mysql
扫描二维码关注公众号,回复:
2815807 查看本文章
再次创建一个容器,并且进入
docker run -d -v mysql:/var/lib/mysql --name mysql3 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
docker run -d -v mysql:/var/lib/mysql --name mysql3 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
进入容器之后,show databases;
还会发现刚刚创建的两个docker容器。
docker 数据虚拟化二:docker bind Mouting
文件夹目录下:
Dockerfile
index.html
目的:可以替换docker内部的docker
需要的docker images :nginx
dockerfile源码:
[root@docker-node1 docker-nginx]# cat Dockerfile
# this same shows how we can extend/change an existing official image from Docker Hub
FROM nginx:latest
# highly recommend you always pin versions for anything beyond dev/learn
WORKDIR /usr/share/nginx/html
# change working directory to root of nginx webhost
# using WORKDIR is prefered to using 'RUN cd /some/path'
COPY index.html index.html
# I don't have to specify EXPOSE or CMD because they're in my FROM
同级目录下新建一个index.html
内容:hello,word
dockerfile开始构建;
docker build -t jesse/nginx .
查看docker images是否生成
第一次开始构建:
docker run -d -p 80:80 --name web jesse/nginx
curl 127.0.0.1 测试是否打开成功
删除容器
第二次开始构建
docker run -d -v $(pwd):/usr/share/nginx/html -p 80:80 --name web jesse/nginx
curl 127.0.0.1 测试是否打开成功
思考:
1.通过宿主机可以共享docker内部的文件,实现docker内部的文件实现和宿主机文件共享
2.宿主机由于是通过vagrant创建的,也可以宿主机和本地的开发环境相关联