Linux安装Docker教程(保姆级)

Docker CE安装

💡 - Docker 是一款开源的容器化平台,它可以帮助开发者将应用程序及其依赖环境打包成一个标准化的容器,实现“一次构建,到处运行”的效果,极大地简化了应用的开发、部署和运维流程。

一、核心概念与原理

  1. 容器(Container)
    • 容器是 Docker 的核心产物,本质上是一个轻量级、可移植的运行环境,包含了应用程序及其所需的所有依赖(如代码、运行时、系统工具、库等)。
    • 与虚拟机(VM)不同,容器不依赖硬件虚拟化,而是利用操作系统的内核功能(如 Linux 的 Namespaces、Cgroups 等)实现资源隔离,因此启动速度极快(秒级),占用资源极少。
  2. 镜像(Image)
    • 镜像是容器的“模板”,是一个只读的文件包,包含了构建容器所需的所有文件和配置信息。
    • 镜像采用分层结构,每层基于上层构建,可复用公共层(如基础操作系统镜像),减少存储空间占用。
  3. 仓库(Repository)
    • 用于存储和管理镜像的服务器,分为公共仓库(如 Docker Hub)和私有仓库(企业自建)。
    • 开发者可从公共仓库拉取镜像,也可将自定义镜像推送到仓库共享或部署。

二、主要功能与优势

  1. 环境一致性
    • 开发者在本地构建的容器环境,可直接部署到测试、生产环境,避免“在我电脑上能运行,上线就报错”的问题。
  2. 资源高效利用
    • 容器共享宿主机内核,相比虚拟机更轻量,一台物理机可运行数百个容器,降低硬件成本。
  3. 快速部署与扩展
    • 容器可通过镜像快速创建,支持批量部署和横向扩展(如通过 Docker Compose 或 Kubernetes 管理多容器应用)。
  4. 微服务架构支持
    • 适合将复杂应用拆分为多个独立的微服务,每个服务运行在独立容器中,便于开发、测试和运维。

三、核心组件与工作流程

  1. Docker 客户端(Docker CLI)
    • 用户与 Docker 交互的命令行工具,用于执行 docker rundocker builddocker pull 等操作。
  2. Docker 守护进程(Docker Daemon)
    • 后台运行的服务,负责处理客户端的请求,管理镜像、容器、网络和存储等资源。
  3. 工作流程示例
1. 开发者编写 Dockerfile(定义镜像构建规则);
2. 使用 `docker build` 命令基于 Dockerfile 构建镜像;
3. 通过 `docker run` 命令启动容器,镜像被实例化为运行中的应用;
4. 可通过 `docker push` 将镜像推送到仓库,或从仓库 `docker pull` 镜像部署。

四、常用场景

  1. 开发与测试
    • 为不同项目创建独立的开发环境,避免依赖冲突;测试环境与生产环境一致,提升测试准确性。
  2. CI/CD(持续集成/持续部署)
    • 与 Jenkins、GitLab CI 等工具集成,实现代码提交后自动构建、测试和部署容器化应用。
  3. 云原生与微服务
    • 作为 Kubernetes 的底层容器技术,支撑大规模微服务架构的部署和管理。
  4. 多版本应用管理
    • 同一服务器上可同时运行同一应用的多个版本容器,方便版本迭代和灰度发布。

五、与其他技术的对比

对比项Docker虚拟机(VM)
隔离级别进程级隔离(共享内核)硬件级隔离(独立操作系统)
资源占用轻量(MB级)重量级(GB级)
启动时间秒级分钟级
应用场景微服务、轻量级部署完整操作系统环境、多系统隔离

六、入门命令示例

  • 拉取镜像docker pull ubuntu(获取 Ubuntu 基础镜像)
  • 运行容器docker run -it ubuntu bash(以交互模式启动 Ubuntu 容器)
  • 查看容器docker ps(查看运行中的容器)
  • 构建镜像docker build -t myapp .(基于当前目录的 Dockerfile 构建名为 myapp 的镜像)

💡 - Docker 通过容器化技术重塑了应用交付模式,已成为现代软件开发和云部署的标配工具之一。无论是个人开发者还是企业团队,掌握 Docker 都能显著提升开发和运维效率。


七、Docker-CE 安装

⚠️ - 以下教程是基于Rocky Linux9.6安装。

💡 - Rocky Linux安装教程:
RockyLinux教程(保姆级)


💡 - 若安装过docker,需要先删掉,之后再安装依赖:

sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2


💡 - 下载repo文件,配置 Docker 官方仓库的镜像源,以便后续通过包管理器安装 Docker CE。

wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo

⚠️ - 如果出现以下错误

-bash: wget: command not found

💡 - 解决办法,安装wget。

sudo dnf install -y wget

💡 - 看到Complete!,说明安装成功

💡 - 再次尝试下载repo文件


💡 - 把<font style="color:rgba(0, 0, 0, 0.85);">/etc/yum.repos.d/docker-ce.repo</font>文件里全部的<font style="color:rgba(0, 0, 0, 0.85);">download.docker.com</font>替换成<font style="color:rgba(0, 0, 0, 0.85);">repo.huaweicloud.com/docker-ce</font>,目的是将 Docker 官方源切换为华为云的镜像源,从而提升下载速度。

sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

💡 - 可以用Finalshell,在文件地址栏输入以下内容,跳转到文件目录。

/etc/yum.repos.d

💡 - 打开docker-ce.repo文件可以看到镜像源。

💡 - 更新索引文件。

sudo yum makecache

💡 - 安装docker-ce。

sudo yum install docker-ce

安装过程中会让输入y/n,我选择都输入y


💡 - 配置镜像加速器

登录:华为云镜像加速器

💡 - 编辑daemon.json文件,配置加速地址。

sudo vi /etc/docker/daemon.json

💡 - 将自己的加速地址粘在[“”]内

{
    "registry-mirrors": [ "https://a93bfcfd660349c1a629d929084bdb6d.mirror.swr.myhuaweicloud.com" ]
}

💡 - 按esc,然后输入:wq保存,

💡 - 重启docker

systemctl restart docker

💡 - 确认配置结果

docker info

💡 - 测试

docker pull hello-word


Docker-Compose 安装

💡 - Docker Compose是 Docker 官方推出的容器编排工具,能简化多容器 Docker 应用的部署与管理,以下从核心功能、使用逻辑等方面详细介绍:


一、核心定位

💡 - 专门解决多容器协同问题:开发中一个完整业务(如 Web 应用),常需 Web 容器、数据库容器、缓存容器等配合,Docker Compose 可通过简单配置文件,定义并一键管理这些容器的启动、依赖、网络等,让复杂部署变简单。


二、关键概念

  • 服务(Service):对应一个或多个容器,定义容器的运行参数(如镜像、端口、环境变量、依赖)。比如“web 服务”用 Nginx 镜像,“数据库服务”用 MySQL 镜像。
  • 项目(Project):一组关联服务的集合,默认以 docker-compose.yml 所在目录名作为项目名,可通过 -p 参数自定义。所有容器名会按 项目名_服务名_序号 生成(如 myapp_web_1)。
  • docker-compose.yml:核心配置文件(YAML 格式),定义服务、网络、存储卷等。支持版本化(如 version: "3.9" ),不同版本语法/功能有差异。

三、主要功能

  1. 一键编排生命周期
    • docker compose up:读取 docker-compose.yml,创建并启动所有服务(含依赖、网络、卷),控制台实时输出日志。加 -d 可后台运行(docker compose up -d )。
    • docker compose down:停止并删除服务相关的容器、网络、卷(可通过参数保留卷/网络),一键清理环境。
  2. 服务依赖与启动顺序
    通过 depends_on 定义服务依赖,比如“Web 服务”依赖“数据库服务”,Compose 会先启动数据库,再启动 Web 服务(但需注意:仅保证启动顺序,不保证服务就绪,复杂依赖需配合健康检查)。
  3. 环境变量与配置管理
    支持从 .env 文件或命令行注入环境变量(如数据库密码),灵活适配不同环境(开发/测试/生产),且不暴露敏感信息到代码仓库。
  4. 动态扩缩容
    docker compose up --scale <服务名>=<实例数> 动态调整服务的容器数量,快速实现横向扩展(如 docker compose up --scale web=3 启动 3 个 Web 容器实例)。
  5. 本地开发友好
    可绑定本地代码目录到容器(volumes 配置),代码修改后容器内自动更新,无需重新构建镜像,实时预览开发效果。

四、使用流程(以 Web + 数据库为例)

  1. 编写 Dockerfile(可选,若需自定义镜像)
    如构建 Web 应用镜像,定义基础环境、拷贝代码、安装依赖等。
  2. **编写 **docker-compose.yml
    示例(简化版):
version: "3.9"
services:
  web:  # 服务名
    build: ./web  # 从本地 ./web/Dockerfile 构建镜像(也可用 image: nginx 直接拉取)
    ports:
      - "80:80"  # 宿主机:容器端口映射
    depends_on:  # 依赖关系
      - db
  db:
    image: mysql:8.0
    environment:  # 环境变量
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - db_data:/var/lib/mysql  # 挂载数据卷,持久化数据库数据
volumes:
  db_data:  # 定义数据卷,会自动创建
  1. 启动与管理
    • 启动:docker compose up -d(后台启动所有服务)。
    • 查看状态:docker compose ps(列出项目内容器状态、端口等)。
    • 查看日志:docker compose logs web(查看 Web 服务日志,加 -f 实时跟踪)。
    • 停止/清理:docker compose down(停止并删除容器、网络;数据卷需加 --volumes 才会删除)。

五、适用场景

  • 本地开发环境:快速模拟多服务协同,无需手动逐个启动容器。
  • 测试环境部署:一键复现生产环境的服务组合,保证测试一致性。
  • 小型项目部署:替代复杂的容器编排工具(如 Kubernetes ),用简单配置完成多容器管理。

💡 - 简单来说,Docker Compose 是多容器应用的“一键启动器 + 管家”,通过一个配置文件 + 几条命令,就能轻松管理容器集群的生命周期,让开发者/运维人员从繁琐的容器操作中解放出来,专注业务逻辑。


下载地址:Releases · docker/compose

💡 - 拉到下面点击标记的位置

💡 - 找到docker-compose-linux-x86_64


💡 - 下载完成后,打开FinalShell,选择一个你要docker-compose的目录。

💡 - 将下载好的docker-compose文件拖入到红框内。

💡 - 改名叫docer-compose

💡 - 接着设置文件可执行权限

chmod +x /usr/local/bin/docker-compose

💡 - 查看版本信息

docker-compose -v

🎉 - 大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值