Docker中的数据持久化方式有两种: 数据卷(Data Volumes) 挂载主机目录 (Bind mounts)

数据卷: 数据卷可以在容器之间共享和重用 对数据卷 的修改会立马生效 对数据卷 的更新,不会影响镜像 数据卷默认会一直存在,即使容器被删除 $ docker volume create my-vol #创建数据卷 $ docker volume ls #查看有哪些卷 $ docker volume inspect my-vol #查看卷详情 $ docker run -d -P --name web -v my-vol:/wepapp training/webapp python app.py #把数据卷挂载到容器的/webapp目录 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。 $ docker inspect web #查看容器详情 $ docker rm -f web #强制删除运行中的容器 $ docker volume rm my-vol #删除卷 $ docker volume prune #清理无用的卷

挂载主机目录: $ docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py #把宿主机的/src/webapp目录挂载到容器的/opt/webapp目录 $ docker run -d -P --name web -v $HOME/.bash_history:/root/.bash_history training/webapp python app.py #把宿主机的文件$HOME/.bash_histor挂载到容器