
目前,CentOs 仅发行版中的内核支持 Docker,Docker 运行在 CentOs 7上,要求系统为64位,Linux 系统内核版本为 3.8 以上
uname 命令用于打印当前系统相关信息
cat /etc/redhat-release
uname -r
Docker 的“三件套”主要指的是 Docker 的三大核心组件,即镜像(Images)、容器(Containers)和仓库(Repositories)。这三者共同构成了 Docker 的基础架构,使得 Docker 能够实现高效、轻量级的容器化应用部署和管理。
综上所述,Docker 的“三件套”——镜像、容器和仓库——共同构成了 Docker 的核心功能,使得 Docker 能够实现高效、轻量级的容器化应用部署和管理。
Docker的工作原理主要基于轻量级的容器化技术,通过虚拟化系统资源来隔离并运行应用程序。

Docker利用Linux操作系统的cgroups、namespaces和AUFS(或其他联合文件系统如OverlayFS)等特性来虚拟化系统资源。这些技术使得Docker能够创建一个或多个隔离的容器环境,每个容器都拥有自己独立的文件系统、网络栈和进程空间等。
Docker平台主要由Docker客户端(Client)、Docker守护进程(Daemon)、Docker镜像(Image)、Docker容器(Container)和Docker仓库(Registry)等组件组成。
Docker还提供了容器编排工具(如Docker Compose和Docker Swarm)来管理多容器应用程序。这些工具可以帮助用户定义容器之间的依赖关系、网络设置、环境变量等,并自动化地部署、扩展和管理容器。
综上所述,Docker通过虚拟化技术将代码、依赖项和运行环境打包成一个容器,并利用隔离机制来使得容器之间互相独立、互不影响。这种容器化技术极大地简化了应用程序的部署和管理过程,提高了资源利用率和系统的可维护性。
Docker 平台架构是一个 C/S(客户端/服务器)模式的架构,后端是一个松耦合架构,模块各司其职。
Docker 平台主要由 Docker Client(客户端)、Docker Daemon(守护进程)、Docker Engine(引擎)、Docker Registry(镜像仓库)、Graph(内部数据库)以及多个驱动模块(如 Graphdriver、Networkdriver、Execdriver 等)组成。这些组件共同协作,实现了 Docker 容器的创建、运行、管理等功能。
docker images、docker run 等命令都是通过 Docker Client 发送的。Docker 平台架构通过 C/S 模式,将复杂的容器管理任务分解为多个模块,每个模块各司其职,共同协作实现了 Docker 容器的创建、运行、管理等功能。这种松耦合的架构使得 Docker 平台具有高度的可扩展性和灵活性,能够满足不同场景下的容器化需求。
在CentOS 7.9上安装Docker的步骤主要包括准备安装环境、安装Docker服务、验证安装结果以及配置镜像加速等。以下是详细的安装步骤:
检查内核版本:
Docker 要求 CentOS 的内核版本在 3.10 以上。可以使用命令 uname -r 来检查当前的内核版本。
检查网络连接: 确保 CentOS 系统能够访问互联网,以便下载 Docker 安装包及其依赖。
关闭防火墙(可选,但谨慎操作):
如果是在测试环境中,可以考虑关闭防火墙以简化安装过程。使用命令 sudo systemctl stop firewalld 停止防火墙服务,并使用 sudo systemctl disable firewalld 禁止防火墙开机自启。但在生产环境中,应根据实际需求设置防火墙规则。
卸载旧版本Docker(如果存在): 如果系统中已安装了旧版本的 Docker,建议先卸载。可以使用以下命令卸载旧版本及其依赖:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine安装yum-utils工具:
这个工具包含了yum-config-manager,可以用来管理yum仓库。使用命令 sudo yum install -y yum-utils 进行安装。
设置Docker仓库: 通过添加Docker的官方仓库,可以使用yum直接安装Docker。可以使用阿里云等国内镜像源来提高下载速度。添加仓库的命令如下:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新yum缓存:
在添加仓库后,使用命令 sudo yum makecache fast 更新yum的缓存。
安装Docker CE: 使用yum命令安装Docker CE(Community Edition,社区版),包括Docker守护进程、Docker客户端和Docker CLI插件。命令如下:
sudo yum install -y docker-ce docker-ce-cli containerd.iosudo systemctl start docker 启动Docker服务。
sudo systemctl enable docker。
sudo docker version 查看Docker的版本信息,以验证Docker是否成功安装。
由于Docker官方镜像仓库的访问速度可能较慢,可以配置国内镜像加速器来提高下载速度。
创建或编辑daemon.json文件:
在 /etc/docker/ 目录下创建或编辑 daemon.json 文件,添加或修改如下内容:
{
"registry-mirrors": ["https://<your-mirror-url>.mirror.aliyuncs.com"]
}其中 <your-mirror-url> 是你选择的镜像加速器的URL。
重新加载Docker配置并重启Docker服务:
使用命令 sudo systemctl daemon-reload 重新加载Docker配置,并使用 sudo systemctl restart docker 重启Docker服务以使配置生效。
但是近期docker被墙的太厉害了,如果配置了阿里镜像加速,不能解决问题的话,可以试试下面这个配置,我配置的阿里的,拉取不了镜像,就是使用的下面的配置,成功能拉取到镜像了
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker作为安装和配置的验证,你可以尝试拉取一个Docker镜像并运行它。例如,拉取并运行Nginx镜像:
sudo docker pull nginx
sudo docker run --name my-nginx -d nginx这将从Docker Hub拉取Nginx镜像,并运行一个名为my-nginx的容器。你可以通过浏览器访问容器的IP地址和默认端口(通常是80)来查看Nginx的欢迎页面。
通过以上步骤,你应该能够在CentOS 7.9上成功安装并配置Docker。
在Docker中,创建一个简单的"Hello World"示例是理解Docker如何工作的好方法。Docker允许你封装应用程序及其依赖项到一个可移植的容器中,然后你可以在任何安装了Docker的环境中运行这个容器。
以下是如何使用Docker来运行一个简单的"Hello World"示例的步骤:
安装Docker之后,你可以通过打开命令行或终端来运行你的第一个Docker容器。
打开你的终端,然后输入以下命令:
docker run hello-world这个命令会从Docker Hub(一个Docker镜像的公共仓库)下载hello-world镜像(如果本地没有的话),并在容器中运行它。运行完成后,你会看到一条消息,表明Docker已经安装并正在运行,以及hello-world镜像提供的一些基本信息。
当你运行docker run hello-world命令时,Docker做了以下几件事:
hello-world镜像:Docker首先检查本地是否有hello-world镜像。如果没有,Docker会从Docker Hub下载它。
hello-world镜像中定义的应用,这通常是一个简单的脚本,打印出欢迎信息和Docker的版本信息。
hello-world镜像的应用设计为运行一次就退出)。
通过运行hello-world示例,你已经体验到了Docker的一些核心功能,包括镜像的下载、容器的创建和运行,以及输出的查看。这是开始使用Docker进行更复杂应用部署和容器化工作的良好起点。
综上所述,Docker之所以比虚拟机快,主要得益于其更轻量级的抽象层、高效的资源共享、快速的启动和运行速度、镜像管理的优化以及轻量级的管理系统。这些特点使得Docker成为现代应用程序开发和部署中不可或缺的工具。