容器是即开即用的设计理念
bind mounts 示例:docker run -d --name web -p 88:80 nginx docker exec -it web bash cd /usr/share/nginx/html/ echo "hello bing" >index.html
删除容器再重建,页面显示默认页,说明未持久化
docker rm -f web docker run -d --name web -p 88:80 nginx
挂载宿主机目录到容器
mkdir /opt/wwwroot docker rm -f web docker run -d --name web -p 88:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx docker ps -l
访问出现403,bind特性,原因:宿主机的目录覆盖了容器中的目录,宿主机目录当前为空,进入容器查看也为空
ls /opt/wwwroot/ docker exec -it web bash cd /usr/share/nginx/html/ ls
容器中创建页面内容,宿主机中也会出现;宿主机修改内容,容器中会跟着修改
echo "hello bing" >index.html
删除容器,重新创建,访问发现页面未变,说明已经达到持久化的目的
制作镜像:
- 启动容器之后的应用程序产生的数据尽量放到一个目录 /data
- 构建不是将已经生成的应用程序数据打包进去的
jenkins、gitlab使用docker都是采用-v的方式将它们自身产生的数据持久化宿主机
volumes示例:1.创建数据卷:
docker volume create nginx-vol docker volume ls docker volume inspect nginx-vol
使用数据卷:
docker run -d --name=web2 -p 89:80 --mount src=nginx-vol,dst=/usr/share/nginx/html nginx docker run -d --name=web3 -p 90:80 -v nginx-vol:/usr/share/nginx/html nginx



