容器持久化及数据共享
1. 容器数据卷用v命令添加
docker run -it -v /宿主机绝对路径:/容器绝对路径 [镜像名]
实现宿主机和容器实例的数据共享
可以用docker inspect 容器id 查看是否绑定成功
容器关闭后,主机修改共享目录是同步的
小提示
若用上述命令创建后,容器内不能进行写操作,可添加参数-- priviledged=true
设定权限
docker run -it -v /宿主机绝对路径:/容器绝对路径:ro [镜像名] (只读)
主机可写,容器不可写
2. dockerFile
- dockerFile的编写
FROM centos
VOLUME ["/volumeContainer1","/volumeContainer2"]
CMD echo "finished,-------success"
CMD /bin/bash
- build获得自定义镜像
docker -f dockerFile路径 -t 自定义镜像名字 .(.代表当前文件夹上下文环境)
宿主机数据共享目录为默认的,可用inspect查看
3. 数据卷容器
进行容器间的数据传递,容器之间的数据共享
docker run -it --name dc01 centos
docker run -it --name dc02 --volumes-from dc01 centos
4.dockerFile是什么
dockerFile是docker镜像的构建文件,由一系列的脚本组成
dockerFile解析过程
- 规则
- 自指令必须大写 且后面至少有一个参数
- 每条指令都会创建一个镜像层,并对镜像进行提交
保留字指令
FROM 来自于哪个基础镜像
MAINTAINER 作者以及邮箱
RUN 容器构建时需要执行的命令
EXPOSE 暴露服务端口
WORKDIR 指定创建容器后,终端登录的目录
ENV 设置环境变量
ADD 拷贝、解压缩
COPY 拷贝 src desc
VOLUME 建立数据卷
CMD 指定启动时运行的命令,dockerFile中可有多个cmd命令,但是只有最后一个生效 同时,其作用会被docker run之后的参数替换
ENTRYPOINT 和CMD效果一样 但不会被docker run之后的参数替换
ONBUILD 父镜像在子镜像被构建时被触发
base镜像(scratch)
网友评论