本地镜像发布到阿里云:
镜像云发布流程:
镜像生成方法:
- 容器commit提交
- 云服务拉取
- Dockerfile
容器数据卷:
卷就是一个目录或者文件 存在于一个或多个容器中 由docker挂载到容器 但不属于联合文件系统 因此能够绕过union file system 提供一些用于持续存储或共享数据的特性
卷的设计目的:
数据的持久化 完全独立于容器的生存周期,因此docker不会在容器删除时 删除其挂载的数据卷
容器卷是什么?
有点类似于redis里的rdb和aof文件 将docker容器内的数据保存进宿主机的磁盘中 运行一个带有容器卷存储功能的容器实例
容器数据卷可以干嘛?
将运用与运行的环境打包成镜像 run后形成容器实例运行 但是我们对数据的要求希望是持久化的 docker容器产生的数据如果不备份,那么当容器实例删除后,容器内的数据自然会删除 为了能保存数据在docker中我们使用卷
特点:
- 数据卷可以在容器之间共享或者重用数据
- 卷中的更改可以直接实时生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
容器卷与主机互通互连:
宿主机 容器之间映射添加容器卷:
直接命令添加
- docker run -it --privileged=true -v /宿主机绝对路径:容器内目录 镜像名(--name u ubuntu)
- docker修改 主机同步获得 主机修改 docker同步获得 docker容器停止 主机修改 docker容器重启看数据是否会同步(成功同步)
读写规则映射添加说明
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名 (默认是rw)
当然有时候的需求是只读:
容器实例内部被限制 只能读取不能写
docker -run -it --privileged=true -v /宿主机绝对路径目录:容器内目录 :ro 镜像名
卷的继承和共享
容器1完成与宿主机的映射
容器中创建文件会同步更新到主机中
容器2继承容器1的卷规则