Docker了解与安装
介绍
Docker是管理容器的工具,Docker不等于容器
Docker 是一个开源的应用容器引擎,允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中,然后发布到任何支持 Docker 的机器上,确保应用在不同环境中的运行一致性。
Docker 的核心思想是通过容器化技术实现应用的快速部署、扩展和管理。
Docker特点和功能
容器化:Docker 使用容器技术将应用程序及其依赖项打包在一个独立的运行环境中,这使得应用在不同的计算环境(如开发、测试、生产)中具有一致性。
轻量级:相比于传统的虚拟机,Docker 容器更加轻量级,因为它们共享宿主机的操作系统内核,而不是像虚拟机那样运行独立的完整操作系统。
可移植性:Docker 容器可以在任何安装了 Docker 的机器上运行,无论是个人电脑、云服务器还是数据中心,保证了应用的可移植性。
版本控制和组件复用:Docker 允许开发者使用 Dockerfile 来定义应用的环境,并通过 Docker Hub 等平台共享和复用容器镜像,简化了应用的构建和管理过程。
隔离性:每个 Docker 容器都是相互隔离的,确保不同应用之间的资源和依赖不会互相干扰。
易于扩展:Docker 容器可以快速创建和销毁,非常适合需要弹性扩展的应用场景,如微服务架构。
Docker 的核心组件:
Docker 引擎(Docker Engine):负责创建和管理 Docker 容器的核心组件。
Docker 镜像(Docker Image):包含了应用运行所需的所有内容,如代码、运行时、库、环境变量和配置文件等。
Docker 容器(Docker Container):Docker 镜像的运行实例,可以启动、停止、移动和删除。
Docker 仓库(Docker Registry):用于存储和分发 Docker 镜像,最常见的公共仓库是 Docker Hub。
Docker Compose:一个工具,允许开发者通过 YAML 文件定义和运行多容器 Docker 应用。
Docker Swarm:Docker 自带的本地集群管理工具,支持多节点容器编排。
Docker 的应用场景:
微服务架构:Docker 非常适合微服务架构,每个微服务可以作为独立的容器运行,便于扩展和管理。
持续集成和持续部署(CI/CD):通过 Docker,可以实现快速、一致的环境切换,简化 CI/CD 流程。
多环境部署:Docker 容器可以在开发、测试、生产等多环境中保持一致的运行环境,减少“在我的机器上可以运行”的问题。
资源优化:由于 Docker 容器的轻量级特性,可以更高效地利用硬件资源。
DevOps 实践:Docker 通过标准化应用环境和依赖管理,支持 DevOps 文化,促进开发和运维团队之间的协作。
虚拟化分类
仿真虚拟化:对系统硬件没有要求,性能最低。例如: VMware
半虚拟化:虚拟机可以使用真机物理硬件,性能高,需要改内核。例如:Xen
硬件辅助虚拟化。例如: vmware kvm
需要硬件支持 【cpu 主板】
不需要改内核
可以直接使用真机硬件,性能最贴近宿主机
容器虚拟化。例如:lxc docker
安装与配置
安装Docker工具
# 安装依赖(无法安装继续下面的步骤)
yum install -y dnf-utils device-mapper-persistent-data lvm2
# 下载Docker官方yum源
wget https://download.docker.com/linux/centos/docker-ce.repo -P /etc/yum.repos.d/
# 替换成清华源
sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
# 强制将 $releasever 变量替换为 Docker 官方实际支持的版本号(如 9 或 8)
sed -i 's/$releasever/9/g' /etc/yum.repos.d/docker-ce.repo
# 原因:您的麒麟系统 $releasever=11,但 Docker 仓库无此目录,导致 404 错误
# 清理并重建缓存(验证修改是否成功)
yum clean all
yum makecachedocker 安装
卸载旧版本
# 彻底卸载旧版本或可能存在冲突的 Docker 软件包
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine安装docker并启动
# 安装docker
yum -y install docker-ce
## 安装docker及核心组件
yum install -y docker-ce docker-ce-cli containerd.io
# 设置开机自启
systemctl enable docker
# 执行命令后显示
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
# 立即启动Docker服务
systemctl start docker
# 验证启动
systemctl status docker
# 显示客户端版本号
docker -v
# 显示结果
Docker version 29.6.2, build dfc4efbdocker配置文件
# 1、关闭docker
systemctl stop docker
# 会显示以下【意思是:正在停止 docker.service,但它的触发单元 docker.socket 仍然处于活动状态】
Stopping 'docker.service', but its triggering units are still active:
docker.socket
# 2、编辑docker配置文件,默认没有
# registry-mirrors设置国内镜像站,加速下载镜像
vim /etc/docker/daemon.json
# 添加以下内容
{
"registry-mirrors": [
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn",
"http://mirror.azure.cn",
"https://hub.rat.dev",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io",
"https://docker.unsee.tech",
"https://dockerpull.org",
"https://dockerhub.icu",
"https://proxy.1panel.live",
"https://docker.1panel.top",
"https://docker.1ms.run",
"https://docker.ketches.cn"
]
}
# 3、重载docker服务、重启docker生效配置
systemctl daemon-reload
systemctl restart docker
# 4、查看docker的监听地址和端口
ps aux | grep dockerd
# 显示内容
root 4154 7.3 6.2 1947624 89656 ? Ssl 09:14 0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockdocker client 与 daemon分离
“分离”指的就是 Docker 客户端(Client) 和 Docker 守护进程 (Daemon) 是各自独立运行的两个进程
这个架构的核心设计理念是 “分离控制与执行”,这赋予了 Docker 强大的远程管理能力和生态扩展性。
Docker了解与安装
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法