Docker入门指南:CentOS 7 安装与阿里云镜像加速配置

发布于:2025-09-12 ⋅ 阅读:(20) ⋅ 点赞:(0)

Dokcer是什么

Docker 是一种容器化技术,它能将应用程序及其依赖(如库、配置文件、运行环境等)打包成一个标准化的“容器”,确保应用在任何支持 Docker 的环境中都能以相同方式运行,解决了“开发环境能跑,生产环境跑不起来”的经典问题(服务器系统、配置不同导致的各类打包问题)。

一、Docker 的核心优势:为什么要用 Docker?

  1. 环境一致性
    开发时将应用和依赖打包成容器,测试、生产环境直接使用相同容器,彻底避免“我这能跑”“你那缺个库”的问题。比如 Java 应用依赖 JDK 11,容器里会固定包含这个版本,不会因服务器上的 JDK 版本不同而报错。

  2. 轻量级与高效
    容器不像虚拟机(VM)需要模拟完整操作系统,而是共享宿主机的内核,启动速度快(秒级),占用资源少(一个服务器可运行成百上千个容器)。

  3. 隔离性
    每个容器是独立的“沙箱”,应用运行时的资源(CPU、内存、文件系统)相互隔离,避免互相干扰(如 A 应用不会占用 B 应用的内存)。

  4. 易于扩展与部署
    容器可通过脚本快速复制、启停,配合 Kubernetes(K8s)等工具能实现自动扩缩容(如流量高峰时自动增加容器数量),简化分布式系统的部署流程。

二、Docker 的核心概念:3 个关键组件

  1. 镜像(Image)

    • 是容器的“模板”,包含运行应用所需的代码、依赖、配置等(可理解为“只读的快照”)。
    • 例如 nginx 镜像包含 Nginx 服务器的所有文件,mysql 镜像包含 MySQL 数据库的运行环境。
    • 镜像不能直接运行,需要基于它创建容器。
  2. 容器(Container)

    • 是镜像的“运行实例”,镜像被加载到内存后形成的可执行环境(可读写)。
    • 一个镜像可创建多个容器(如用 mysql 镜像启动 3 个独立的 MySQL 容器,各自有不同的数据)。
    • 容器停止后,数据默认会丢失(除非挂载外部存储)。
  3. 仓库(Repository)

    • 用于存储和分发镜像的平台,类似代码仓库(如 GitHub)。
    • 公共仓库:Docker Hub(官方,包含大量常用镜像,如 nginxopenjdk);
    • 私有仓库:企业内部搭建的仓库(如 Harbor),用于存储私有镜像(如公司自研应用的镜像)。

三、CentOS7 系统安装Docker

  1. 卸载旧版本命令或残留文件

    yum remove docker \
     docker-client \
     docker-client-latest \
     docker-common \
     docker-latest \
     docker-latest-logrotate \
     docker-logrotate \
     docker-engine
    
  2. 同步时区

     yum -y install ntp
     systemctl enable ntpd --now
    
  3. 安装docker的yum库

     yum install -y yum-utils
    
  4. 安装docker

     #方式1
     wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
     	
     #方式2 
     yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  5. 替换 Docker 仓库源为阿里云镜像

    sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    
  6. 更新 YUM 缓存

    yum makecache fast
    
  7. 安装 Docker以及相关组件

    yum -y install docker-ce-24.0.2-1.el7 docker-ce-cli-24.0.2-1.el7 containerd.io-1.6.9-3.1.el7
    yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  8. 启动 Docker, 设置开机自启动

     sudo systemctl start docker
     #启动docker
     sudo systemctl restart docker
     #重启docker
     sudo systemctl status docker
     #查看docker状态
     sudo systemctl stop docker
     #停止docker
     systemctl enable docker
     # 开机自启动
    
  9. 查看docker

     docker --version
     #查看docker版本
     docker images
     #查看docker镜像情况
    

四、Docker 在后端开发中的典型应用场景

  1. 开发环境标准化
    团队成员通过相同的 Docker 镜像搭建开发环境,避免因本地配置不同导致的问题(如“数据库版本不一致”“依赖缺失”)。

  2. 微服务部署
    每个微服务(如用户服务、订单服务)打包成独立容器,通过 Docker Compose 编排多个容器(如同时启动服务、数据库、Redis),一键启动整个系统。

  3. CI/CD 流水线集成
    代码提交后,自动构建 Docker 镜像并推送至仓库,再由部署工具拉取镜像并更新容器,实现“代码提交→自动部署”的全流程自动化。

  4. 隔离测试
    测试时为每个测试用例创建独立容器,测试完成后销毁,避免测试数据污染环境。

五、学习建议(针对后端开发)

  1. 先练基础操作:用 Docker 启动 Nginx、MySQL 等常用服务,熟悉镜像拉取、容器启停、端口映射等基础命令。
  2. 学写 Dockerfile:尝试将自己开发的 Java 应用(如 Spring Boot 项目)打包成镜像,理解如何在镜像中配置 JDK、复制 jar 包、暴露端口。
  3. 结合 Docker Compose:学习用 docker-compose.yml 编排多容器应用(如“Spring Boot 应用 + MySQL + Redis”),实现一键启动整个服务集群。

六、常用Docker命令

# 搜索镜像
docker search 镜像名称

# 拉取镜像
docker pull 镜像名称:标签

# 查看已下载的镜像
docker images

# 运行容器
docker run -d --name 容器名称 -p 主机端口:容器端口 镜像名称

# 查看运行中的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

# 停止容器
docker stop 容器名称或ID

# 启动已停止的容器
docker start 容器名称或ID

# 删除容器
docker rm 容器名称或ID

# 删除镜像
docker rmi 镜像ID

网站公告

今日签到

点亮在社区的每一天
去签到