0

0

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

爱谁谁

爱谁谁

发布时间:2025-06-27 12:54:01

|

445人浏览过

|

来源于php中文网

原创

  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介绍及安装

Imagine By Magic Studio
Imagine By Magic Studio

AI图片生成器,用文字制作图片

下载

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

443

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

605

2023.08.10

Go中Type关键字的用法
Go中Type关键字的用法

Go中Type关键字的用法有定义新的类型别名或者创建新的结构体类型。本专题为大家提供Go相关的文章、下载、课程内容,供大家免费下载体验。

238

2023.09.06

go怎么实现链表
go怎么实现链表

go通过定义一个节点结构体、定义一个链表结构体、定义一些方法来操作链表、实现一个方法来删除链表中的一个节点和实现一个方法来打印链表中的所有节点的方法实现链表。

462

2023.09.25

go语言编程软件有哪些
go语言编程软件有哪些

go语言编程软件有Go编译器、Go开发环境、Go包管理器、Go测试框架、Go文档生成器、Go代码质量工具和Go性能分析工具等。本专题为大家提供go语言相关的文章、下载、课程内容,供大家免费下载体验。

265

2023.10.13

0基础如何学go语言
0基础如何学go语言

0基础学习Go语言需要分阶段进行,从基础知识到实践项目,逐步深入。php中文网给大家带来了go语言相关的教程以及文章,欢迎大家前来学习。

722

2023.10.26

Go语言实现运算符重载有哪些方法
Go语言实现运算符重载有哪些方法

Go语言不支持运算符重载,但可以通过一些方法来模拟运算符重载的效果。使用函数重载来模拟运算符重载,可以为不同的类型定义不同的函数,以实现类似运算符重载的效果,通过函数重载,可以为不同的类型实现不同的操作。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

196

2024.02.23

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

241

2024.02.23

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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