容器中的修改并不能持久化,当容器删除后再次启动,修改的信息被清除了,要想信息不被清除还原,就需要持久化将数据存储在卷上。卷与容器是解耦的,从而可以独立地创建并管理卷,并且卷并未与任意容器生命周期绑定。最终效果即用户可以删除一个关联了卷的容器,但是卷并不会被删除。
Docker 中卷属于一等公民。抛开其他原因,这意味着卷在 API 中拥有一席之地,并且有独立的 docker volume 子命令。
卷的常用命令
# 创建一个卷
docker volume create myvol
# 列出卷信息
docker volume ls
# 查看卷详细信息
docker volume inspect myvol
# 删除卷
docker volume prune
docker volume rm
# 挂载数据卷到容器
# 在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。
#在一次 docker run 中可以挂载多个 数据卷。
#推荐使用mount方式,如果指定了已经存在的卷,Docker 会使用该卷。如果指定的卷不存在,Docker 会创建一个卷。
docker run --name nginx -d -P 8080:8080 \
# -v myvol:/wepapp \
--mount source=myvol,target=/webapp \
nginx
# 使用 --mount 标记可以指定挂载一个本地主机的目录到容器中去。
docker run --name web -d -P 8080:8080 \
# -v /src/webapp:/wepapp \
--mount type=bind,source=/src/webapp,target=/webapp \
nginx
# –mount 标记也可以从主机挂载单个文件到容器中
docker run --rm -it \
# -v $HOME/.bash_history:/root/.bash_history \
# 把容器中的历史命令挂载到主机上的历史命令 文件,记录在容器输入过的命令。
--mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history \
ubuntu:17.10 bash
点波关注 系统搭建(docker)
网友评论