容器数据持久化
[root@ol85 ~]# docker exec -it web bash
root@web:/# cd /usr/share/nginx/html/
root@web:/usr/share/nginx/html#
root@web:/usr/share/nginx/html# echo "<h1>hello world </h1>" >index.html
[root@ol85 ~]# docker rm -f web
重建
[root@ol85 ~]# docker run -d --name web -p 88:80 nginx
创建宿主机nginx根目录
[root@ol85 ~]# mkdir /opt/wwwroot
[root@ol85 ~]# docker run -d --name web -p 88:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx
报403
[root@ol85 ~]# ls /opt/wwwroot/
[root@ol85 ~]# docker exec -it web bash
root@78472ea027ed:/# ls /usr/share/nginx/html
root@78472ea027ed:/# cd /usr/share/nginx/html/
root@78472ea027ed:/usr/share/nginx/html# ls
root@78472ea027ed:/usr/share/nginx/html# echo "<h1>hello word</h1>" > index.html
编辑目标容器目录。容器中创建,可以访问。宿主机中,可以看到该内容。
[root@ol85 ~]# ls /opt/wwwroot/
index.html
[root@ol85 ~]# vi /opt/wwwroot/index.html
模拟删除重建,修改的页面
[root@ol85 ~]# docker rm -f web
web
[root@ol85 ~]# docker run -d --name web -p 88:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx
制作镜像:
1,启动容器后的应用程序服务,产生的数据尽量放到一个目录 /data
2, 构建镜像,不是将已生成的应用程序数据打包进去
3,随着容器产生的数据,才会持久化。已有的数据,只能是镜像中的一部分。
jenkins,gitlab 使用docker采用 -v 将自身产生的数据持久化宿主机
数据卷
docker volume create nginx-vol
目录 : /var/lib/docker/volumes