Docker 安装 CentOS(长文解析)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

前言:为什么选择 Docker 安装 CentOS?

在软件开发和系统管理的领域中,Docker 安装 CentOS 逐渐成为一种高效且灵活的实践。Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中。而 CentOS 是一个广泛使用的 Linux 发行版,因其稳定性和安全性,常被用于生产环境。通过 Docker 安装 CentOS,用户可以快速创建一个隔离的 Linux 环境,避免对主机系统造成干扰,同时实现资源高效利用。

想象一下,Docker 就像一个集装箱码头,每个集装箱(容器)装载着不同的货物(应用程序),而 CentOS 是其中一个标准化的集装箱模板(镜像)。通过 Docker,用户可以轻松地“装载”(拉取镜像)、“运输”(运行容器)和“管理”(操作容器)这些集装箱,极大简化了开发和部署流程。

本文将从零开始,逐步讲解如何在 Docker 中安装和管理 CentOS 环境,并提供实际案例和代码示例,帮助读者快速掌握这一技能。


一、Docker 的基础概念与安装

1.1 Docker 的核心组件

  • Docker Engine:负责运行容器的底层引擎,包含客户端(docker CLI)、服务端(dockerd)和容器运行时。
  • 镜像(Image):容器的模板,例如 CentOS 镜像包含了 CentOS 系统的所有文件和配置。
  • 容器(Container):基于镜像运行的实例,可以启动、停止和删除。
  • 仓库(Repository):存储镜像的远程服务器,如 Docker Hub。

1.2 在 Linux 系统上安装 Docker

以 Ubuntu 22.04 为例,安装步骤如下:

sudo apt-get update

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

sudo docker --version

提示:若使用其他 Linux 发行版(如 CentOS 8),可参考 Docker 官方文档调整命令。


二、拉取并运行 CentOS 容器

2.1 拉取 CentOS 镜像

Docker Hub 中的 CentOS 镜像分为多个版本,例如 centos:7centos:latest。使用 docker pull 命令下载:

sudo docker pull centos:7

比喻:这就像在淘宝上“下单”一个标准化的集装箱模板,Docker 会自动下载并存储到本地仓库。

2.2 运行第一个 CentOS 容器

使用 docker run 命令启动容器:

sudo docker run -it --name my_centos centos:7 /bin/bash
  • -it:分配交互式终端。
  • --name my_centos:为容器命名,方便后续管理。
  • centos:7:指定使用的镜像。
  • /bin/bash:容器启动后执行的命令,这里以 Bash 终端为例。

成功运行后,终端会切换到容器内部的 CentOS 环境,输入 cat /etc/redhat-release 可查看版本信息:

CentOS Linux release 7.9.2009 (Core)

2.3 容器退出与重启

  • 退出容器:在容器内执行 exit 命令,或按 Ctrl+P+Q 保持容器运行但脱离终端。
  • 重启容器
    sudo docker start my_centos  # 启动容器
    sudo docker attach my_centos  # 重新连接终端
    

三、容器的高级管理技巧

3.1 挂载目录:实现数据持久化

默认情况下,容器停止后数据会丢失。通过 绑定挂载(Bind Mount) 可将主机目录与容器目录关联:

sudo docker run -it -v /host/path:/container/path centos:7

案例:假设在主机创建 /code 目录存放项目文件,启动容器时挂载:

sudo docker run -it -v $(pwd)/code:/app/code --name dev_env centos:7

容器内执行 cd /app/code 后,即可直接访问主机的代码目录,实现数据持久化。

3.2 端口映射:对外暴露服务

若需在容器内运行 Web 服务器(如 Apache),需通过 -p 参数映射端口:

sudo docker run -d -p 8080:80 --name web_server centos:7

3.3 容器日志与删除

  • 查看容器日志:
    sudo docker logs web_server
    
  • 删除容器:
    sudo docker rm web_server
    

四、Docker 安装 CentOS 的进阶实践

4.1 使用 Dockerfile 自定义镜像

若需预装软件或配置环境,可通过 Dockerfile 创建自定义镜像:

FROM centos:7
RUN yum install -y httpd
CMD ["httpd", "-D", "FOREGROUND"]

构建镜像并运行:

sudo docker build -t my_centos_web .
sudo docker run -d -p 8080:80 my_centos_web

4.2 容器网络管理

默认情况下,Docker 容器通过 bridge 网络通信。可通过 --network 参数自定义网络:

sudo docker network create my_net

sudo docker run -d --network my_net --name db_server centos:7

五、常见问题与解决方案

5.1 容器运行后无法访问

  • 可能原因:未正确映射端口或服务未启动。
  • 解决方案
    # 检查端口映射
    sudo docker port web_server
    # 进入容器检查服务状态
    sudo docker exec -it web_server systemctl status httpd
    

5.2 镜像空间不足

  • 解决方案:清理未使用的镜像和容器:
    sudo docker system prune -a --volumes
    

结论:Docker 安装 CentOS 的价值与展望

通过本文的讲解,读者已掌握了如何利用 Docker 快速构建、管理和扩展 CentOS 环境。Docker 的容器化技术不仅简化了开发流程,还通过资源隔离保障了系统的稳定性。随着云原生技术的普及,Docker 在 DevOps、微服务等领域的作用将更加重要。

未来,建议读者进一步探索 Docker Compose(多容器编排)和 Kubernetes(容器集群管理),以应对更复杂的生产环境需求。掌握 Docker 安装 CentOS 的技能,将成为开发者通往高效协作与自动化运维的关键一步。

最新发布