docker

docker volume数据卷

2018-08-06  本文已影响116人  静宸丶水默含声

1.创建volume

$ sudo docker volume create --name vol_simple
$ sudo docker run -d -v /data ubuntu
$ sudo docker run -d -v vol_simple: /data ubuntu
$ sudo docker volume inspect vol_simple

2.挂载volume

$ sudo docker volume create --name vol
$ sudo docker run -d -v vol: /data ubuntu
$ sudo docker run -v /host/dir:/container/dir ubuntu
$ sudo docker run -it -v /host/file:/container/file ubuntu
$ sudo docker run -it -v /host/dir:/container/dir:ro

3.使用Dockerfile添加volume

1.使用VOLUME指令向容器添加volume,如果镜像中存在/data文件夹,这个文件夹中到内容将全部复制到宿主机对应到文件夹下。(以容器内容为主)
VOLUME /data

使用VOLUME可以添加多个volume:VOLUME ["/data1","/data2"].

2.需要注意到是,在Dockerfile中使用VOLUME指令之后到代码,如果尝试对这个volume进行修改,这些修改都不会生效。例如:
FROM ubuntu
RUN useradd foo
VOLUME /data
RUN touch /data/file #不生效
RUN chown -R foo:foo /data #不生效

正确为:

#改变对volume文件夹修改对顺序
FROM ubuntu
RUN useradd foo
RUN mkdir /data && touch /data/file && chown -R foo:foo /data 
VOLUME /data

或者

# 将修改操作放到CMD或者ENTRYPOINT指令中
FROM ubuntu
RUN useradd foo
VOLUME /data
CMD  touch /data/file && chown -R foo:foo /data 

4.共享volume

$ sudo docker run --rm -it --volumes-from vol_simple ubuntu
$ sudo docker run --name vol_data -v /data ubuntu echo "data-only"
$ sudo docker run -it --name vol_share1 --volumes-from vol_data ubuntu
$ sudo docker run -it --name vol_share2 --volumes-from vol_data ubuntu

5.删除volume

上一篇 下一篇

猜你喜欢

热点阅读