美文网首页我和Kubernetes有个约会
DOCKER系列一----理解docker

DOCKER系列一----理解docker

作者: 青衣敖王侯 | 来源:发表于2023-06-06 21:45 被阅读0次

    1.Docker

    image.png

    2.为什么要用Docker

    image.png

    Namespace:在运行进程的时候我们可以指定它运行在哪个Namespace下,Namespace又分很多的子系统,包括网络Namesapce,PID Namespace,UTS Namespace,MNT Namespace。
    假设我们启动一个进程,并且给这个进程分配了一个新的网络Namespace,这个时候意味着进程就可以有独立的网络设备,有独立的IP地址,独立的防火规则,独立的路由表。这个namespace和主机的namespace是相互独立的,隔离的。这个时候其实就是把一个进城赋予独立的网络标识了。整个的过程其实不涉及虚拟机的创建,一般我们创建虚拟机的时候需要分配多少CPU,多少内存等等。
    但是一个主机上可以启动多个进程,这个时候就涉及如何管控这些进程资源分配,这个就是通过Cgroup去做的。Cgroup是Linux里面的Control Group。
    通过Namespace和Cgroup就使得Linux主机上的进程可以有独立的一个运行空间,有独立的身份,然后通过Cgroup来控制它的资源

    3.虚拟机和容器运行态的对比

    image.png

    3.1虚拟机最下面是服务器,它本身会有一个Host OS.在此基础之上要装一个Hypervisor,Hypervisor的作用就是启动各个虚拟机的,所以Hypervisor之上还有各个GuestOS也就是各种各样的VM,GuestOS里面本身就是一个完整的操作系统。

    4.性能对比

    image.png

    5.安装Docker

    image.png

    6.容器操作

    image.png
    image.png

    docker images 可以看看本地有哪些镜像。docker run就是告诉docker daemon希望去运行CentOS的这个镜像。如果没有这个镜像,就会去docker hub镜像仓库拉取。
    可以通过docker run -d nginx的方式,在后台运行一个nginx的服务
    如果想看容器的细节,可以通过docker inspect 【容器ID】进行查看

    7.初识容器【重点】

    image.png

    任何容器镜像的构建都离不开docker file.
    docker file第一行有一个FROM,表示是从哪个基础镜像构建出来的。
    通过ENV加一些环境变量,通过add的操作把之前编译好的文件添加到这个容器镜像里面去(实际上是做了一个copy),接下来通过entrypoint来指定说这个容器镜像在运行的时候应该指定启动哪个程序。
    docker build就可以去构建容器镜像,通过docker push把这个容器镜像推到镜像仓库,一旦推送到镜像仓库,别人就可以通过这样docker run的命令,从镜像仓库里面拉取这个容器镜像并且运行了。

    相关文章

      网友评论

        本文标题:DOCKER系列一----理解docker

        本文链接:https://www.haomeiwen.com/subject/hiniedtx.html