首页 > 运维 > linux运维 > 正文

Docker知识点(一):Docker介绍及安装

爱谁谁
发布: 2025-06-27 12:54:01
原创
314人浏览过
  1. Docker是什么?

docker是一个基于go语言开发的开源项目。其主要目标是实现“构建、运送和运行任何应用程序,任何地方”。通过封装、分发、部署和管理应用组件的生命周期,docker使得用户的应用程序(如web应用或数据库应用等)及其运行环境能够一次封装,随处运行。

Docker知识点(一):Docker介绍及安装

Linux容器技术的出现解决了这一问题,而Docker正是建立在其基础上的。应用运行在Docker容器中,而Docker容器在任何操作系统上都是一致的,从而实现了跨平台和跨服务器的部署。只需一次配置好环境,迁移到其他机器上即可一键部署,大大简化了操作。

  1. Docker能做什么?

2.1 传统的虚拟化技术

虚拟机(Virtual Machine)是一种带环境安装的解决方案。它可以在一个操作系统内运行另一个操作系统,例如在Windows系统内运行Linux系统。应用程序对此毫无察觉,因为虚拟机看起来与真实系统完全一致。对于底层系统来说,虚拟机只是一个普通文件,不再需要时可以删除,不会影响其他部分。这类虚拟机完美地运行了另一套系统,使得应用程序、操作系统和硬件之间的逻辑保持不变。

Docker知识点(一):Docker介绍及安装

虚拟机的缺点包括:

  • 资源占用多
  • 冗余步骤多
  • 启动慢

2.2 容器虚拟化技术

由于虚拟机存在上述缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,简称LXC)。Linux容器不是模拟完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件运行所需的库资源和设置。系统因此变得高效轻量,并保证在任何环境中部署的软件都能始终如一地运行。

Docker知识点(一):Docker介绍及安装

对比了Docker与传统虚拟化方式的不同之处:

传统虚拟机技术是虚拟出一套硬件,然后在其上运行一个完整的操作系统,再在该系统上运行所需的应用进程;而容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,也没有进行硬件虚拟。因此,容器比传统虚拟机更为轻便。每个容器之间相互隔离,每个容器有自己的文件系统,容器之间的进程不会相互影响,并能区分计算资源。

2.3 Docker的实际应用

作为开发人员需要掌握Docker,作为运维人员必须掌握Docker。它实现了“一次构建,随处运行”的理念,带来了以下优势:

  • 更快速的应用交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用
  1. 相关资源

官方网站:https://www.php.cn/link/e836b5ebd3143577c69cda6109cc209e

仓库:https://www.php.cn/link/641e0c2c35e72adecd8639eb76ebfa18

  1. Docker安装的前提环境

CentOS Docker安装支持以下版本:

  • CentOS 7 (64位)
  • CentOS 8
  • CentOS 6.5 (64位)或更高版本

前提条件:

目前,CentOS仅发行版本中的内核支持Docker。Docker运行在CentOS 7上,要求系统为64位,系统内核版本为3.10以上。Docker运行在CentOS-6.5或更高的CentOS版本上,要求系统为64位,系统内核版本为2.6.32-431或更高版本。

查看自己的内核可以使用uname命令,该命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

  1. Docker的基本组成

Docker知识点(一):Docker介绍及安装

5.1 镜像(image)

Docker镜像(Image)是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建许多容器。

Docker知识点(一):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客户端创建一个对应的运行实例,也就是我们的容器。至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要时从仓库中拉下来即可。

  1. 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++
登录后复制

Docker知识点(一):Docker介绍及安装

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
登录后复制

Docker知识点(一):Docker介绍及安装

6.5 yum更新

yum makecache fast
登录后复制

6.6 Docker安装

CE是官方提供的免费版本,学习足够了。

yum -y install docker-ce
登录后复制

Docker知识点(一):Docker介绍及安装

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>
登录后复制
  1. Docker卸载
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker
登录后复制

以上就是Docker知识点(一):Docker介绍及安装的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号