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

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. 卸载旧版本命令或残留文件

    bash 复制代码
    yum remove docker \
     docker-client \
     docker-client-latest \
     docker-common \
     docker-latest \
     docker-latest-logrotate \
     docker-logrotate \
     docker-engine
  2. 同步时区

    bash 复制代码
     yum -y install ntp
     systemctl enable ntpd --now
  3. 安装docker的yum库

    bash 复制代码
     yum install -y yum-utils
  4. 安装docker

    bash 复制代码
     #方式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 仓库源为阿里云镜像

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

    bash 复制代码
    yum makecache fast
  7. 安装 Docker以及相关组件

    bash 复制代码
    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, 设置开机自启动

    bash 复制代码
     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

    bash 复制代码
     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命令

bash 复制代码
# 搜索镜像
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
相关推荐
北城笑笑2 小时前
Server 13 ,CentOS 上使用 Nginx 部署多个前端项目完整指南( 支持多端口与脚本自动化 )
linux·服务器·前端·nginx·centos
Java陈序员2 小时前
听歌体验直接拉满!推荐一款高颜值音乐播放器!
vue.js·docker·vite
xy_recording3 小时前
学习番外:Docker和K8S理解
学习·docker·kubernetes
zjjuejin3 小时前
Docker Swarm 完全指南:从原理到实战
后端·docker
韩zj5 小时前
docker部署Gitlab社区版,步骤以及外网访问出现502的解决方式
docker·容器·gitlab
@t.t.7 小时前
利用Rancher平台搭建Swarm集群
docker·rancher
My is 李豆7 小时前
CentOS 7 安装 MySQL 详细教程
mysql·centos
程序员瓜叔10 小时前
基于SVN搭建企业内部知识库系统实践
svn·centos
清风徐来QCQ14 小时前
阿里云centos7-mysql的使用
mysql·阿里云·云计算