docker是一个基于go语言开发的开源项目。其主要目标是实现“构建、运送和运行任何应用程序,任何地方”。通过封装、分发、部署和管理应用组件的生命周期,docker使得用户的应用程序(如web应用或数据库应用等)及其运行环境能够一次封装,随处运行。
Linux容器技术的出现解决了这一问题,而Docker正是建立在其基础上的。应用运行在Docker容器中,而Docker容器在任何操作系统上都是一致的,从而实现了跨平台和跨服务器的部署。只需一次配置好环境,迁移到其他机器上即可一键部署,大大简化了操作。
2.1 传统的虚拟化技术
虚拟机(Virtual Machine)是一种带环境安装的解决方案。它可以在一个操作系统内运行另一个操作系统,例如在Windows系统内运行Linux系统。应用程序对此毫无察觉,因为虚拟机看起来与真实系统完全一致。对于底层系统来说,虚拟机只是一个普通文件,不再需要时可以删除,不会影响其他部分。这类虚拟机完美地运行了另一套系统,使得应用程序、操作系统和硬件之间的逻辑保持不变。
虚拟机的缺点包括:
2.2 容器虚拟化技术
由于虚拟机存在上述缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,简称LXC)。Linux容器不是模拟完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件运行所需的库资源和设置。系统因此变得高效轻量,并保证在任何环境中部署的软件都能始终如一地运行。
对比了Docker与传统虚拟化方式的不同之处:
传统虚拟机技术是虚拟出一套硬件,然后在其上运行一个完整的操作系统,再在该系统上运行所需的应用进程;而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,也没有进行硬件虚拟。因此,容器比传统虚拟机更为轻便。每个容器之间相互隔离,每个容器有自己的文件系统,容器之间的进程不会相互影响,并能区分计算资源。
2.3 Docker的实际应用
作为开发人员需要掌握Docker,作为运维人员必须掌握Docker。它实现了“一次构建,随处运行”的理念,带来了以下优势:
官方网站:https://www.php.cn/link/e836b5ebd3143577c69cda6109cc209e
仓库:https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18
CentOS Docker安装支持以下版本:
前提条件:
目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS 7上,要求系统为64位,系统内核版本为3.10以上。Docker运行在CentOS-6.5或更高的CentOS版本上,要求系统为64位,系统内核版本为2.6.32-431或更高版本。
查看自己的内核可以使用uname命令,该命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
5.1 镜像(image)
Docker镜像(Image)是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建许多容器。
5.2 容器(container)
Docker利用容器(Container)独立运行一个或一组应用。容器是由镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以将容器看作是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
5.3 仓库(repository)
仓库(Repository)是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是Docker Hub(https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18/),存放了数量庞大的镜像供用户下载。
5.4 总结
镜像文件生成的容器实例本身也是一个文件,称为镜像文件。一个容器运行一种服务,当我们需要时,就可以通过Docker客户端创建一个对应的运行实例,也就是我们的容器。至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要时从仓库中拉下来即可。
6.1 确认版本
[root@bobo01 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)
6.2 安装gcc相关
yum -y install gcc gcc-c++
6.3 卸载旧版本
[root@bobo01 ~]# yum -y remove docker docker-common docker-selinux docker-engine 已加载插件:fastestmirror 参数 docker 没有匹配 参数 docker-common 没有匹配 参数 docker-selinux 没有匹配 参数 docker-engine 没有匹配 不删除任何软件包
6.4 安装软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
6.5 yum更新
yum makecache fast
6.6 Docker安装
CE是官方提供的免费版本,学习足够了。
yum -y install docker-ce
6.8 启动Docker
systemctl start docker
查看版本
[root@bobo01 ~]# docker version Client: Docker Engine - Community Version: 20.10.5 API version: 1.41 Go version: go1.13.15 Git commit: 55c4c88 Built: Tue Mar 2 20:33:55 2021 OS/Arch: linux/amd64 Context: default Experimental: true <p>Server: Docker Engine - Community Engine: Version: 20.10.5 API version: 1.41 (minimum version 1.12) Go version: go1.13.15 Git commit: 363e9a8 Built: Tue Mar 2 20:32:17 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.4 GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e runc: Version: 1.0.0-rc93 GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec docker-init: Version: 0.19.0 GitCommit: de40ad0
6.9 HelloWorld案例
[root@bobo01 ~]# docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b8dfde127a29: Pull complete Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latest</p><p>Hello from Docker! This message shows that your installation appears to be working correctly.</p><p>To generate this message, Docker took the following steps:</p><ol><li>The Docker client contacted the Docker daemon.</li><li>The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)</li><li>The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.</li><li>The Docker daemon streamed that output to the Docker client, which sent it to your terminal.</li></ol><p>To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash</p><p>Share images, automate workflows, and more with a free Docker ID: <a href="https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18/">https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18/</a></p><p>For more examples and ideas, visit: <a href="https://www.php.cn/link/43514321536f88cdbe57368daaa688fd">https://www.php.cn/link/43514321536f88cdbe57368daaa688fd</a>
systemctl stop docker yum -y remove docker-ce rm -rf /var/lib/docker
以上就是Docker知识点(一):Docker介绍及安装的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号