阿里云做的网站怎么样,wordpress瀑布流主 65533,做内贸的电子商务网站典型有,郑州网站运营实力乐云seo镜像
简介
1.镜像是一种轻量级、可执行的独立软件包#xff0c;用来打包软件运行环境和基于环境开发的软件#xff0c;他包含运行某个软件所需的所有内容#xff0c;包括代码、运行时库、环境变量、配置文件
2.将所有的应用和环境11#xff0c;直接打包成docker镜像用来打包软件运行环境和基于环境开发的软件他包含运行某个软件所需的所有内容包括代码、运行时库、环境变量、配置文件
2.将所有的应用和环境11直接打包成docker镜像就可以直接运行
获取镜像 1.从远程仓库下载 2.从他出拷贝 3.自己制作一个镜像DockerFile
镜像加载原理 Docker镜像的加载原理基于UnionFS联合文件系统。 Union文件系统UnionFs是一种分层、轻量级并且高性能的文件系统他支 持对文件系统的修改作为一次提交来一层层的叠加同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统是 Docker镜像的基础。镜像可以通过分层来进行继承基于基础镜像没有父镜像可以制作各种具体的应用镜像
特性 一次同时加载多个文件系统但从外面看起来只能看到一个文件系统联合加载会把各层文件系 统叠加起来这样最终的文件系统会包含所有底层的文件和目录
加载步骤 1.Docker客户端从Docker镜像仓库下载镜像的每一层。 2.Docker客户端将每一层按照层叠关系挂载到UnionFS上。 3.UnionFS将所有的层合并成一个完整的文件系统。 4.Docker容器内部使用这个根文件系统作为自己的根文件系统。 分层理解
分层结构最大的好处就是资源共享。
如多个镜像都从相同的 Base 镜像构建而来那么宿主机只需在磁盘上保留一份base镜像同时内存中也只需要加载一份base镜像这样就可以为所有的容器服务了而且镜像的每一层都可以被共享。
查看分层 docker image inspect 镜像名 理解 所有的 Docker镜像都起始于一个基础镜像层当进行修改或培加新的内容时就会在当前镜像层之上创建新的镜像层 假如基于 Ubuntu Linux16.04 创建一个新的镜像这就是新镜像的第一层如果在该镜像中添加 Python 包就会在基础镜像层之上创建第二个镜像层如果继续添加一个安全补丁就会创建第三个镜像层该像当前已经包含3个镜像层 特点 Docker 镜像都是只读的当容器启动时一个新的可写层加载到镜像的顶部 这一层就是我们通常说的容器层容器之下的都叫镜像层 pull 下来的只是 只读文件run 之后镜像才开始运行我们平时在 docker 里面操作镜像此时操作的层次就是容器层
commit镜像 docker commit 提交容器成为一个新的副本 # 命令和git原理类似 docker commit -m提交的描述信息 -a作者 容器id 目标镜像名:[TAG] # tag 表示版本 如果你想要保存当前容器的状态就可以通过commit来提交获得一个镜像就好比使用虚拟机时的快照。
数据卷
数据容器卷是一种将容器内部目录和本地目录进行挂载的技术它允许将容器内的数据持久化并且可以在容器之间共享数据和重用数据
功能 1.数据持久化能够将数据保存到本地文件系统容器删除数据页不会丢失 2.数据共享多个容器可以共享一个数据卷并在其中进行读写操作 3.数据迁移通过复制或者移动将数据卷从一个地方迁移到另一个地方
解决问题 1.数据丢失问题由于数据卷的持久化特性即使容器被删除数据也不会丢失 2.数据管理问题多个容器可以共享同一个数据卷避免了数据管理的复杂性 3.数据保护问题数据卷不会被容器生命周期所限制只要本地文件系统存在数据就能持久保存
使用
方式一命令挂载 docker run -it -v 主机目录容器内目录 # 测试 docker run -it -v /home/ceshi:/home centos /bin/bash 修改只需要在本地修改即可容器内会自动同步只有一个物理地址二者共享一个资源
具名挂载和匿名挂载
具名挂载 # 具名挂载 docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx docker volume ls # 通过 -v 卷名容器内路径 # 查看一下这个卷 匿名挂载 -P 不指定路径 -v 容器内路径! docker run -d -P --name nginx01 -v /etc/nginx nginx # 查看所有的volume的情况 docker volume ls # 这种就是匿名挂载我们在 -v 只写了容器内的路径没有写容器外的路径 所有的docker容器内的卷没有指定目录的情况下都是在 /var/lib/docker/volumes/xxxx/_data 下 如果指定了目录docker volume ls 是查看不到的。 我们通过具名挂载可以方便的找到我们的一个卷大多数情况使用具名挂载
方式二Dockerfile
Dockerfile 就是用来构建 docker 镜像的构建文件相当于命令脚本通过这个脚本可以生成镜像。镜像是一层一层的脚本的一个个的命令每个命令都是一层。 FROM centos VOLUME [/data] CMD echo ------end------ VOLUME [/data] 指令声明了一个名为 /data 的数据卷。当使用该 Dockerfile 构建镜像并运行容器时该数据卷将会被自动挂载到容器的 /data 目录下。
通过使用 VOLUME 指令您可以在 Dockerfile 中声明多个数据卷并在构建镜像时自动创建它们。