初识 Docker
Docker 的诞生
Docker 起源于 2013 年,由法国工程师 Solomon Hykes 在 dotCloud 公司内部发起的一个项目。dotCloud 是一家提供平台即服务(PaaS)的公司,他们自己使用一种容器技术来隔离和运行客户的应用。Solomon 意识到这项技术本身比他们的 PaaS 平台更有价值,于是将其开源,命名为 Docker。
- 技术基础:Docker 最初基于 Linux 容器(LXC)技术,但后来开发了自己的容器运行时 libcontainer,让容器更轻量、可移植。
- 核心理念:Build, Ship, and Run Any App, Anywhere(构建、交付、运行任何应用,任何地方)。
- 开源影响:Docker 的出现极大地简化了容器的使用,迅速引爆了容器化浪潮,成为云计算领域的基石之一。
- 版本分支:社区版(CE - Community Edition)与企业版(EE - Enterprise Edition)。
- 官网
什么是Docker
- 镜像(Image):容器的只读模板,包含了运行应用所需的代码、运行时、库、环境变量和配置文件。
- 好比是“类”,是一个静态的定义。
- 容器(Container):一种沙盒环境,运行着你的应用,彼此隔离,且共享宿主机的操作系统内核。
- 好比是“对象”,是镜像运行时的动态实例。
- 仓库(Repository):集中存放镜像的地方,最著名的是 Docker Hub。
- 存放镜像的“网盘”,可以拉取(pull)或推送(push)镜像。
- Dockerfile:自动化构建镜像的脚本。
- 构建镜像的“配方”,描述如何一步步构建镜像。
Docker 通过镜像构建容器,让你一次构建,到处运行。
为什么使用Docker
- 环境一致性:开发、测试、生产环境完全一致,告别环境问题。
- 快速部署:容器启动只需秒级,比虚拟机快得多。
- 资源高效:容器共享宿主机内核,不需要完整的操作系统,内存、CPU 占用更低。
- 易于迁移:任何安装了 Docker 的机器都能运行你的容器。
- 版本控制:镜像可以像 Git 一样进行版本管理,方便回滚和协作。
Docker与虚拟机的区别
| 特性 | Docker 容器 | 虚拟机 |
|---|---|---|
| 启动速度 | 秒级 | 分钟级 |
| 硬盘占用 | MB 级别 | GB 级别 |
| 性能 | 接近原生 | 有一定损耗 |
| 系统支持 | 共享宿主机内核 | 每个 VM 包含完整 OS |
| 隔离级别 | 进程级隔离 | 硬件级虚拟化 |
安装 Docker
Docker可以运行在MAC,Windows、Centos、Ubuntu等操作系统上,本次基于Centos 9安装。
-
确保系统环境干净,先卸载可能存在的旧版本(如果是全新系统可跳过)
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine此操作不会删除
/var/lib/docker/中的镜像、容器、卷和网络 -
配置 Docker 官方软件源
# 为系统添加 Docker CE 的软件源,阿里云镜像源(国内推荐) sudo dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装yum-utils依赖 sudo dnf install -y yum-utils device-mapper-persistent-data lvm2 -
安装 Docker 引擎
-
安装 Docker
-
最新版
# 包含 docker-ce引擎、docker-ce-cli客户端、containerd.io容器运行时 sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
指定版本
# 查看可用版本 dnf list docker-ce --showduplicates | sort -r # 安装特定版本(替换 VERSION_STRING,如 3:27.4.0-1.el9) sudo dnf install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
-
-
启动并设置开机自启
# 启动 Docker 服务 sudo systemctl start docker # 设置开机自启 sudo systemctl enable docker # 验证服务状态(显示 active (running) 即为正常) sudo systemctl status docker
-
-
配置非root用户免sudo使用Docker(可选)
# 将当前用户添加到 docker 组 sudo usermod -aG docker $USER # 使配置生效(需要重新登录或执行以下命令) newgrp docker # 测试无需 sudo 运行 docker run hello-world安全提示:将用户添加到
docker组相当于赋予该用户 root 权限,请谨慎操作 -
验证安装
sudo docker run hello-world # 查看docker版本(备选) docker -v
看到 "Hello from Docker!" 的欢迎信息,说明安装成功。
-
可选优化(国内镜像加速):为了提升镜像拉取速度,建议配置国内镜像源
# 创建 Docker 配置目录 sudo mkdir -p /etc/docker # 写入镜像加速配置(使用腾讯云、网易云、阿里云(公共版)镜像源) sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://hub-mirror.c.163.com", "https://mirror.aliyuncs.com" ] } EOF # 重启 Docker 服务使配置生效 sudo systemctl daemon-reload sudo systemctl restart docker

浙公网安备 33010602011771号