Docker学习笔记(二)——文件复制,commit,数据卷
目录
文件复制命令(docker cp ):

# afaae4d91c78:容器id
# /usr/tmp/haha.txt:要拷贝的容器文件路径
# /root:宿主机目录
# 将容器afaae4d91c78下的usr文件里的,tmp文件夹里的haha.txt 复制到宿主机的root目录下
docker cp afaae4d91c78:/usr/tmp/haha.txt /root
docker commit 命令


docker commit -a "layman@123.com" -m "测试镜像提交" 24c67251eb1b alpine:test
docker容器数据卷(持久化)


数据卷新建命令:

--如果没有该目录,则会自动新建该目录

docker run -it --name "centos" -v /myDataHost:/MyContainer 300e315adb2f      #默认为读写权限
docker run -it --name "centos" -v /myDataHost:/MyContainer:ro 300e315adb2f   #修改容器为只读权限(read-only)- 在myDataHost和MyContainer两个目录里的任意一个新建文件,另一个目录里都会出现。
- 当容器停止后,在宿主机的目录myDataHost里,修改(新建)文件,当容器启动后,会自动同步文件。
- docker的数据集给我的感觉,就像是windows系统的共享文件夹
通过docfile新建数据卷并构建镜像
Dockerfile是Docker 镜像的描述文件,其内部包含了一条条的指令,每一条指令构建一层,每一条指令的内容,就是描述该层应当如何构建。每条指令按顺序依次执行



# my dockfile test
FROM centos
# 多个数据集用,分割
VOLUME ["/VolumeTest"]
CMD echo "oh,my--baby~"
CMD /bin/bash根据dockerfile生成镜像
# -f 指定dockefile路径,默认是'PATH/Dockerfile'
# -t 指定镜像的名称和表情 name:tag
# . 镜像构建时打包上传到Docker引擎中的文件目录,不是本机目录
docker build -f /usr/local/layman/dockerfile -t centos:layman .
运行镜像

数据集容器

# --volumes-from:指定从那个容器挂载
docker run  -it --name="layman02" --volumes-from layman01 9f8f3b88c6be
docker run  -it --name="layman03" --volumes-from layman01 9f8f3b88c6be

结论:
-  layman02和layman03均挂载于layman01上,他们之间的数据通过VolumeTest进行共享 
-  即便layman01容器停止或者被删除,layman02和layman03的数据仍然可以共享 
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号