如果觉得本文对您有帮助,可以关注、转发、点赞,您的支持是我持续创作的最大动力!
如果要在Kubernetes中运行应用程序,需要先将它们打包到容器镜像中。本文以Docker为例来进行具体讲解。
首先我们需要在Linux平台(本文以Centos7为例)上安装Docker软件。
docker基础镜像。SELINUX是CentOS系统捆绑的安全服务程序,因为安全策略太过于严格,所以建议关闭这项服务。
修改/etc/selinux/config文件,设置SELINUX=disabled
uname -a
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce-18.03.1.ce
systemctl start dockersystemctl enable docker
安装完成之后,可以通过Docker客户端运行各种Docker命令。比如,我们可以拉取一个hello-world镜像,然后执行运行。也可以直接通过docker run命令执行hello-world镜像,该命令会自动下载并执行镜像。
这看起来可能不太吸引人,但是想象一下,当你把hello-world换成你自己的应用程序时,通过一个简单的命令就能直接下载并执行,完全不需要安装或者其他操作,你还会觉得不够炫酷吗?为了演示,我选择了一个很简单的hello-world应用,但是它也可能是有许多依赖的复杂应用。无论多么复杂,设置和运行应用程序的整个流程是完全一样的。另一个比较重要的点是,在容器中运行的应用与主机上其他进程是完全隔离的。
k8s镜像仓库。当我们运行hello-world镜像时,会看到终端显示了一段话,如下图中红框中的内容:
这段文字其实已经清晰地解释了运行镜像背后的原理。
Docker分为Docker Client和Docker Server,在我们启动Docker之前,通过执行docker version命令只能看到Docker Client的信息,如下图:
启动Docker之后,还可以看到Docker Server的信息,如下图:
kubernetes镜像仓库、Docker Client执行docker run命令时,会与Docker daemon通信,该进程会去检查本机是否已经下载了hello-world镜像。如果没有,它会从Docker Hub镜像仓库拉取该镜像。镜像被下载到本机后,Docker daemon会基于这个镜像创建一个容器,然后容器内会运行可执行文件输出内容。Doceker daemon会将输出内容发送给Docker客户端,最终,内容会被显示到终端显示器。
运行其他容器镜像跟运行hello-world镜像的方式一样。通常运行镜像的时候我们都不需要指定额外的命令。因为镜像中一般都包含需要执行的命令,但是我们也可以根据情况进行覆盖。可以在http://hub.docker.com/或其他镜像中心上找到官方的或者用户公开的镜像。运行镜像的命令如下:
$ docker run
基本上所有的软件都会更新,因此一个软件程序一般都有多个版本。Docker支持同一个镜像有个多个版本。每个版本必须有一个唯一的标签(tag)。当使用一个镜像没有显示地指定tag名时,Docker会使用默认的latest tag。如果要运行一个不同版本的镜像,可以通过指定tag名的方式,如下:
$ docker run :
如:docker run ubuntu:14.04
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态