什么是Docker?
目录
一、Docker 基础概念
1.Docker:一个容器化平台,可将应用程序及其依赖打包成轻量级、可移植的容器。
2.镜像:只读模板,用于创建Docker容器,包含运行应用程序所需的代码、运行时、系统工具和库。
3.容器:镜像的运行实例,是一个隔离的进程空间,包含应用程序及其运行环境。
4.Docker仓库:存储和分发镜像的地方(如DockerHub)。

二、Docker 架构概览
Docker采用客户端-服务器的分布式架构,分为以下几个关键部分:
- Docker Client (客户端)
- Docker Daemon (守护进程)
- Docker Image (镜像)
- Docker Container (容器)
- Docker Registry (镜像仓库)
这些组件通过标准API进行交互,共同构建了一个完整的容器管理生态系统。

1.Docker客户端(Docker Client)
Docker客户端是用户与Docker的主要交互方式,通常是通过命令行工具(CLI)实现的。它接受用户的指令,并将这些指令通过RESTful API发送给Docker Daemon处理。
主要功能:
镜像管理:拉取、构建、上传镜像。
容器管理:创建、启动、停止、删除容器。
日志与状态查询:查看容器状态、日志和性能指标。
2.Docker守护进程(Docker Daemon)
Docker Daemon是Docker的核心后台服务,负责实际执行容器的创建、运行和管理任务。它在主机上运行,监听DockerAPI请求。
主要功能:
容器管理:负责启动、停止和销毁容器。
镜像管理:下载、存储和分发镜像。
资源分配:管理容器的CPU、内存、网络等资源。
网络功能:配置容器间的网络通信。
3.Docker 镜像(Docker Image)
Docker镜像是容器的只读模板,包含了运行应用所需的所有文件、依赖和配置。它类似于虚拟机的快照,但更轻量。
特点:
分层结构:Docker镜像采用联合文件系统(UnionFS)技术,由多层叠加组成。每一层都对应一次文件系统的更改操作。
可复用:不同的镜像可以共享底层的公共层,显著减少存储空间需求。
4.Docker容器 (Docker Container)
容器是镜像的运行实例,包含了应用程序及其运行环境。它是Docker的核心对象,提供了轻量级、隔离的运行环境。
特点:
隔离性:每个容器运行在自己的用户空间中,拥有独立的文件系统、网络和进程空间。
高效性:与虚拟机不同,容器共享宿主机的操作系统内核,因此启动速度更快,资源占用更少。
5.Docker 仓库(Docker Registry)
Docker Registry是存储和分发镜像的服务,类似于代码仓库。Docker官方提供了公共镜像库Docker Hub,用户也可以搭建私有仓库。
三、Docker安装
- 需要在操作系统上安装Docker引擎才能使用Docker命令。
- 安装方法因操作系统而异(Linux、Windows、macOS),需参考官方文档进行安装。

四、Linux部署Docker
检查内核版本
Docker要求内核版本至少为3.10或更高
uname -r #查看内核版本命令

安装docker依赖包
sudo yum install -y yum-utils device-mapper-persistent-data l vm2

配置Docker国内镜像源(清华大学源)
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install -y docker-ce docker-ce-cli containerd.io

启动Docker服务并验证Docker是否正常运行
systemctl startdocker #启动 Docker
sudo systemctl enable docker #开机自启
docker version #查看Docker版本

创建Docker配置文件在下目录中创建在配置文件中添加以下内容
vim/etc/docker/daemon.json #在/etc/docker目录下创建配置文件daemon.json { "registry-mirrors":[ "https://docker.m.daocloud.io", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://your preferred_mirror", "https://dockerhub.icu". "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliryuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc" ] }重启Docker服务进行测试
systemctl restartdocker #重启服务
docker pull hello-world #拉取 hello-world镜像
docker runhello-world #运行镜像
docker images #查询镜像
