由于公众号做了改版,为了保证公众号的资源能准时推送到你手里,大家记得将咱们的公众号 加星标置顶 ,在此真诚的表示感谢~ 正文如下: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中...相信大家对 Docker 并不陌生,有时候想把玩一些开源项目,如果对应的项目提供 Docker 的启动方式的话,你可以非常容易的将对应项目跑起来。...所以,你有没有想过使用 Docker 运行一个 Mac OS 系统呢(当然自己买一个 Mac 电脑也是可以的)?...使用我们今天推荐的开源项目 Docker-OSX 可以帮助你快速的使用 Docker 启动一个 Mac OS。 ? 目前,Docker-OSX 的最新版本 2.6 支持如下特性: ?...使用项目制作好的镜像,非常简单就能完成。 ? 更多项目详情请查看如下链接。 项目地址:https://github.com/sickcodes/Docker-OSX
顺带说一下 volume 和 namespace ,咱们就开始分享一下 service 是什么 volume 是什么 还记得 docker 的 volume 吗,是一个数据卷 在 K8S 中,volume...是 pod 中能够被多个容器访问的共享目录 ,实际上和 docker 是一样的 volume 是被定义在 pod 上面的,因此,volume 的生命周期和 pod 是相同的 volume 会被该 pod...中的多个容器挂载到具体的文件目录下面,若某个容器挂掉了,是不会影响 volume 的,也就是说 volume 中的数据是不会丢失的 我们可以使用 volume: 在 pod 中指定 volume 的类型...,例如,磁盘,SSD 或者网络存储等等 再来看看 hostPath 类型 hostPath 类型的卷,能够让对应的容器访问当当前宿主机上指定的目录 对于 hostPath 类型,我们尽可能的少用,官方有一个这样的警告...例如,我们需要运行一个访问一个 docker 系统目录的容器,那么我们可以使用 /var/lib/docker 目录作为一个 hostPath 类型的卷 但是,只要这个 pod 离开宿主机的话,hostPath
不过基于emptyDir构建的gitRepo存储卷可以在Pod对象的生命周期起始时从响应的Git仓库中复制相应的数据文件到底层的emptyDir中,从而使得它具有了一定意义上的持久性。...emptyDir存储卷 emptyDir存储卷是Pod对象生命周期中的一个临时目录,类似于Docker上的docker挂载卷,在Pod对象启动时即被创建,而在Pod对象被移除时会被一并删除。...节点存储卷 hostPath hostPath类型的存储卷是指将工作节点上某文件系统的目录或文件挂载于Pod中的一种存储卷,它可独立于Pod资源的生命周期,因而具有持久性。...log目录中 - name: socket #挂载名称为socket的卷 mountPath: /var/run/docker.sock#挂载到容器中的...: /var/lib/docker/containers#挂载到容器中的/var/lib/docker/containers目录中 readOnly: true
hostPath 卷将主机节点的文件系统中的文件或目录挂载到集群中。 ...hostPath 的用途如下: 运行需要访问 Docker 内部的容器;使用 /var/lib/docker 的 hostPath。...在容器中运行 cAdvisor;使用 /dev/cgroups 的 hostPath。 ...除了所需的 path 属性之外,用户还可以为 hostPath 卷指定 type 值 行为 空字符串(默认)用于向后兼容,这意味着在挂载 hostPath 卷之前不会执行任何检查。...当 Kubernetes 按照计划添加资源感知调度时,将无法考虑 hostPath 使用的资源。 在底层主机上创建的文件或目录只能由 root 写入。
Kubernetes Volume卷具有明确的生命周期——与包裹它的 Pod 相同。 因此,Volume比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。...emptyDir卷 当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷,并且只要 Pod 在该节点上运行,卷就一直存在。就像它的名称表示的那样,卷最初是空的。...尽管 Pod 中每个容器挂载 emptyDir 卷的路径可能相同也可能不同,但是这些容器都可以读写 emptyDir 卷中相同的文件。...hostPath卷 hostPath 卷能将主机node节点文件系统上的文件或目录挂载到你的 Pod 中。 虽然这不是大多数 Pod 需要的,但是它为一些应用程序提供了强大的逃生舱。...支持的 type 值如下: 取值 行为 空字符串(默认)用于向后兼容,这意味着在安装 hostPath 卷之前不会执行任何检查 DirectoryOrCreate 如果指定的路径不存在,那么将根据需要创建空目录
当然不需要,Docker 非常贴心的提供了数据持久化方案,叫数据卷 volume。 使用 volume 有四大优势: volume 可以在容器之间以及容器和主机之间共享和重用。...这样就可以把源代码目录挂载到容器中,当有代码需要修改时,直接改本地代码就自动同步到容器了,在开发测试时非常方便。...测试这个地方的时候还出现了一点小插曲,在 Linux 下完全没问题,但在我自己的 Mac 电脑上,虽然详情已经显示挂载目录了,但 cd 过去却怎么也找不到这个目录。...原因在于,在 Mac 上,Docker 启了一个虚拟机来运行实际的 Docker 进程,那么怎么登录到 Docker 虚拟机呢?...docker-desktop:~# docker-desktop:~# cd /var/lib/docker/volumes/ docker-desktop:/var/lib/docker/volumes
1.普通Volume 最简单的普通Volume是单节点Volume。它和Docker的存储卷类似,使用的是Pod所在K8S节点的本地目录。...PV 跟 Volume (卷) 类似,不过会有独立于 Pod 的生命周期。 它和普通Volume的区别是什么呢?...三、hostPath Volume hostPath Volume 的作用是将 Docker Host 文件系统中已经存在的目录 mount 给 Pod 的容器。...hostPath 的用途如下: 运行需要访问 Docker 内部的容器;使用 /var/lib/docker 的 hostPath 在容器中运行 cAdvisor;使用 /dev/cgroups...创建的)的 pod 在不同节点上的行为可能会有所不同 当 Kubernetes 按照计划添加资源感知调度时,将无法考虑 hostPath 使用的资源 在底层主机上创建的文件或目录只能由 root
kubectl logs命令实现的基本原理为:容器运行时默认将标准输出和标准错误中的日志输出到磁盘上保存。...保存至主机目录:/var/lib/docker/containers/container_id/目录。...DaemonSet资源会在每个Node节点上都部署一个logrotate的容器实例,并且在容器实例中设置映射主机的log日志目录,从而实现日志的定时清理和回卷。...通过修改dockerd参数进行回卷和清理 由于Kubernetes的日志收集,底层是通过docker来实现。而docker提供了一定的日志回卷和清理功能。...可以通过在dockerd的启动参数中,增加log-opts()参数实现对日志的回卷和清理,其中max-size参数设置日志一个副本的最大值,max-file设置日志的最大的副本数。
简化和去除冗余:在 Kubernetes 中,Docker 引擎的额外功能出现重复和冗余。在这些情况下,使用 containerd 可以简化设置并减少冗余。...临时存储 emptyDir emptyDir 是一种常见的临时存储卷,它在 Pod 被创建时创建,在 Pod 被删除时删除。emptyDir 卷最初是空的,可以由 Pod 中的容器使用。...hostPath hostPath 卷是将 Pod 挂载到宿主机上的目录。它是一种本地存储,在 Pod 被删除时不会被删除。...然后在 spec.containers 中的 volumeMounts 属性中引用 cache-volume 卷挂载到容器内 //etc/nginx/conf.d 目录使用 为 hostPath 卷指定类型可以提供额外的信息...,它创建了一个 Pod,并且通过上面创建的 PVC task-pv-claim 挂载了一个持久化卷到 Nginx 的内容目录中。
Kubernetes的Volume解决了这两个问题 背景 在Docker中也有一个Volume(卷)的概念 ,尽管它有点松散,管理也不太好。...Docker的卷只是磁盘、其它容器中的一个目录,功能也比较有限。 Kubernetes支持多种类型的卷。pod可以同时使用任意数量、类型的卷。...如果通过许可策略限制Hostpath对特定目录的访问,则必须要求volumeMounts使用readOnly装载才能使策略生效 hostPath 卷将主机节点的文件系统中的文件或目录挂载到Pod中。...例如,一些hostPath 的用途如下: 运行需要访问 Docker 内部的容器;使用 hostPath: /var/lib/docker 在容器中运行 cAdvisor;使用 hostPath: /sys...subPath和subPathExpr属性是互斥的。 下例中,使用 Pod使用subPathExpr在hostPath 卷 /var/log/pods中创建pod1 目录。
Kubernetes通过存储卷解决上述的两个问题。 在Docker有存储卷的概念卷,但Docker中存储卷只是磁盘的或另一个容器中的目录,并没有对其生命周期进行管理。...hostPath类型的存储卷用于将宿主机的文件系统的文件或目录挂接到Pod中,除了需要指定path字段之外,在使用hostPath类型的存储卷时,也可以设置type,type支持的枚举值由下表。...在宿主机上创建的文件或目录,只有root用户具写入的权限。您要么在容器中以root身份运行进程,要么在主机上修改的文件或目录的权限,以便具备写入内容到hostPath的存储卷中。...它通过hostPath类型的存储卷,将Pod宿主机上的/data挂接到容器中的/teset-pd目录。...Bidirectional:即 Host 内在该目录中的新挂载都可以在容器中看到,同样容器内在该目录中的任何新挂载也都可以在 Host 中看到,等价于 Linux 内核的 rshared。
在前几期,我们提到,在云原生时代,应用部署在容器中成为了基本操作,而容器受到Namespace, Cgropus和Rootfs构成的次元壁限制,需要在启动时指定挂载的卷,才可以实现挂载容器外部的持久化存储...对于单机版docker或其他容器运行时引擎(如podman等),我们可以通过在命令行中添加相关参数的方式实现,如 docker run -it -u root -v ~/tmp:/mnt/tmp ubuntu...的作用,是在启动容器ubuntu时,将 /root/tmp/ 目录挂载到容器的 /mnt/tmp/ 目录下。...当然,在OpenStack中,也可以在Nova命令行中增加一个参数: nova volume-attach ${server_id} ${volume_id} 来实现把在Cinder中创建的卷挂载给nova...storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data" 这个yaml中的第4行是卷名称:test-pv-hostpath
DockStation DockStation是一卷桌面应用程序;支持Linux、Mac、Windows操作系统。...Docker Desktop Docker Desktop是一款桌面应用程序,由于Docker-toolbox(带有Kitematic)已被弃用,建议所有用户在Mac上使用Docker Desktop,...在Windows上使用Docker Desktop。...使用仪表板,不仅可以使用基本的容器操作,还可以查看日志,基本统计信息并检查容器。所有这些都可以通过上下文菜单或状态栏中的指示器来调用。...此外,还可以为几乎所有所需的指标进行配置。 对于选定的镜像,可以查看Dockerfile中运行时执行的命令以及继承的层。除了修改可用命令和添加新命令之外,还提供了对未使用的容器,镜像,卷的清理。
数据卷 基本命令 正如在上一篇[4]中最后“记住几十个 Docker 命令小诀窍”所提到的,数据卷(Volume)也是常见的 Docker 对象类型的一种,因此也支持 create(创建)、inspect.../var/lib/docker/volumes 目录下面是不是真的有数据卷,答案是:对于非 Linux 系统而言(Windows 和 Mac 系统),该目录不存在于你的文件系统中,而是存在于 Docker...: Name 即数据卷的名称,由于是匿名卷,所以 Name 字段就是一串长长的随机数,命名卷则为指定的名称 Source 为数据卷在主机文件系统中的存储路径(之前说了,Windows 和 Mac 在 Docker...我们可以试着把自己机器的桌面(或者其他路径)挂载到容器中: docker run -it --rm -v ~/Desktop:/desktop alpine 我们还是通过 -v 参数来进行配置,~/Desktop...至此,我们不禁追问,镜像和容器的本质到底是什么,其中的数据是怎样存储的?
2.DockStation DockStation是一卷桌面应用程序;支持Linux、Mac、Windows操作系统。...3.Docker Desktop Docker Desktop是一款桌面应用程序,由于Docker-toolbox(带有Kitematic)已被弃用,建议所有用户在Mac上使用Docker Desktop...,在Windows上使用Docker Desktop。...使用仪表板,不仅可以使用基本的容器操作,还可以查看日志,基本统计信息并检查容器。所有这些都可以通过上下文菜单或状态栏中的指示器来调用。...此外,还可以为几乎所有所需的指标进行配置。 对于选定的镜像,可以查看Dockerfile中运行时执行的命令以及继承的层。除了修改可用命令和添加新命令之外,还提供了对未使用的容器,镜像,卷的清理。
支持Linux,Mac OS X,Windows操作系统。Portainer完全支持以下Docker版本: Docker 1.10到最新版本。 独立的Docker Swarm1.2.3以上版本。...项目地址:https://github.com/YunaiV/ruoyi-vue-pro 2.DockStation DockStation是一卷桌面应用程序;支持Linux、Mac、Windows操作系统...)已被弃用,建议所有用户在Mac上使用Docker Desktop,在Windows上使用Docker Desktop。...使用仪表板,不仅可以使用基本的容器操作,还可以查看日志,基本统计信息并检查容器。所有这些都可以通过上下文菜单或状态栏中的指示器来调用。...此外,还可以为几乎所有所需的指标进行配置。 对于选定的镜像,可以查看Dockerfile中运行时执行的命令以及继承的层。除了修改可用命令和添加新命令之外,还提供了对未使用的容器,镜像,卷的清理。
pod中的所有容器都可以使用卷,但必须先将它挂载在每个需要访问它的容器中。在每个容器中,都可以在其文件系统的任意位置挂载卷。 2....为什么需要Volume 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。...首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件。...如果Pod需要使用Node上的文件,可以使用hostPath。在同一个节点上运行并在其hostPath卷中使用相同路径的pod可以看到相同的文件。 [cm4cuac17e.png] 2....创建pod hostpath-nginx 2.1 创建挂载目录 在node节点上创建挂载目录,master和各node上分别执行如下操作 [root@master ~]# mkdir /data &&
领取专属 10元无门槛券
手把手带您无忧上云