Rocky Linux 8上Docker安装保姆级教程:从阿里云镜像源到第一个容器

Rocky Linux 8上Docker安装保姆级教程:从阿里云镜像源到第一个容器Rocky Linux 8 实战 从零开始掌握 Docker 容器技术 如果你正在寻找一份真正适合初学者的 Rocky Linux 8 Docker 安装指南 那么你来对地方了 不同于那些只给出命令列表的 极简 教程 本文将带你深入理解每个步骤背后的原理 解决实际安装过程中可能遇到的各种问题 无论你是运维新手 学生开发者 还是想搭建本地测试环境的个人用户

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。

# Rocky Linux 8实战:从零开始掌握Docker容器技术

如果你正在寻找一份真正适合初学者的Rocky Linux 8 Docker安装指南,那么你来对地方了。不同于那些只给出命令列表的"极简"教程,本文将带你深入理解每个步骤背后的原理,解决实际安装过程中可能遇到的各种问题。无论你是运维新手、学生开发者,还是想搭建本地测试环境的个人用户,这篇保姆级教程都能让你轻松上手。

1. 环境准备与系统配置

在开始安装Docker之前,我们需要确保Rocky Linux 8系统已经做好充分准备。许多安装问题其实都源于前期准备不足,因此这一步骤至关重要。

首先更新系统所有软件包至最新版本:

sudo dnf update -y 

Rocky Linux 8默认使用的是AppStream仓库,我们需要确认系统中已经启用了EPEL(Extra Packages for Enterprise Linux)和PowerTools仓库:

sudo dnf install epel-release -y sudo dnf config-manager --set-enabled powertools 

安装Docker所需的依赖工具包:

sudo dnf install -y yum-utils device-mapper-persistent-data lvm2 

为什么需要这些工具包?

  • yum-utils:提供yum-config-manager等实用工具
  • device-mapper-persistent-datalvm2:Docker存储驱动所需的设备映射工具

> 提示:Rocky Linux 8源自CentOS,因此大多数CentOS 8的教程也适用于Rocky Linux 8,但要注意版本兼容性。

2. 配置阿里云Docker镜像源

国内用户从官方源下载Docker速度往往较慢,使用国内镜像源可以显著提升下载速度。阿里云提供了稳定快速的Docker CE镜像源。

添加阿里云Docker CE仓库:

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

更新yum缓存:

sudo dnf makecache 

验证仓库是否添加成功:

sudo dnf repolist | grep docker 

你应该能看到类似下面的输出:

docker-ce-stable Docker CE Stable - x86_64 

如果遇到"找不到命令"错误,可能是因为系统缺少yum-utils包,返回上一步确保所有依赖都已安装。

3. 安装Docker CE并配置服务

现在我们可以正式安装Docker社区版(CE)了。CE版完全免费且功能足够个人和中小团队使用。

安装最新版Docker CE:

sudo dnf install -y docker-ce docker-ce-cli containerd.io 

安装完成后,启动Docker服务并设置为开机自启:

sudo systemctl start docker sudo systemctl enable docker 

验证Docker是否安装成功:

sudo docker version 

正常输出应包含Client和Server两部分版本信息。如果只看到Client信息而没有Server,说明Docker服务没有正确启动。

常见问题排查:

  1. 服务启动失败:运行sudo systemctl status docker查看详细错误信息
  2. 权限问题:普通用户需要加入docker用户组才能执行docker命令
  3. 内核兼容性:确保系统内核版本不低于3.10

将当前用户加入docker组(避免每次使用sudo):

sudo usermod -aG docker $USER newgrp docker 

4. 运行第一个Docker容器

现在我们来运行一个简单的测试容器,验证Docker是否正常工作。

拉取并运行Hello-World测试镜像:

docker run hello-world 

成功运行后,你将看到欢迎信息和一些基本使用说明。

接下来我们尝试一个更实用的例子 - 运行Nginx web服务器:

docker run -d -p 8080:80 --name my-nginx nginx 

这个命令做了以下几件事:

  • -d:后台运行容器
  • -p 8080:80:将主机的8080端口映射到容器的80端口
  • --name my-nginx:为容器指定一个名称
  • nginx:使用的镜像名称

验证Nginx容器是否运行:

docker ps 

在浏览器中访问http://你的服务器IP:8080,应该能看到Nginx的欢迎页面。

5. Docker基本操作与管理

掌握一些基本命令对于日常使用Docker至关重要。下面是一些最常用的Docker命令。

镜像管理

# 搜索镜像 docker search 镜像名称 # 拉取镜像 docker pull 镜像名称:标签 # 列出本地镜像 docker images # 删除镜像 docker rmi 镜像ID 

容器管理

# 列出运行中的容器 docker ps # 列出所有容器(包括停止的) docker ps -a # 停止容器 docker stop 容器名称/ID # 启动已停止的容器 docker start 容器名称/ID # 删除容器 docker rm 容器名称/ID # 进入运行中的容器 docker exec -it 容器名称/ID /bin/bash 

日志与监控

# 查看容器日志 docker logs 容器名称/ID # 查看容器资源使用情况 docker stats # 查看容器详细信息 docker inspect 容器名称/ID 

6. 数据持久化与目录挂载

默认情况下,容器内的数据在容器删除后会丢失。为了实现数据持久化,我们可以使用卷(volume)或目录挂载。

创建一个命名卷:

docker volume create my-vol 

运行容器并使用该卷:

docker run -d -v my-vol:/app --name my-app nginx 

或者直接挂载主机目录:

docker run -d -v /host/path:/container/path --name my-app nginx 

验证挂载是否成功:

docker inspect my-app | grep Mounts 

7. 容器网络配置

Docker提供了多种网络模式,默认情况下会创建一个桥接网络(bridge)。

列出所有网络:

docker network ls 

创建一个自定义网络:

docker network create my-network 

运行容器并使用自定义网络:

docker run -d --network my-network --name container1 nginx docker run -d --network my-network --name container2 nginx 

现在container1和container2可以通过容器名称互相访问。

8. 常见问题与故障排除

即使按照教程操作,有时也会遇到各种问题。这里列出一些常见问题及解决方法。

问题1:无法从镜像仓库拉取镜像

  • 检查网络连接
  • 尝试更换镜像源
  • 确认防火墙设置

问题2:端口冲突

  • 使用netstat -tulnp检查端口占用
  • 更改映射端口,如-p 8081:80

问题3:存储空间不足

  • 清理无用镜像:docker system prune
  • 调整Docker存储位置

问题4:容器启动后立即退出

  • 检查日志:docker logs 容器ID
  • 确保容器内有前台进程运行

问题5:权限被拒绝

  • 确认用户是否在docker组
  • 尝试使用sudo
  • 检查SELinux状态

9. 进阶配置与优化

对于生产环境或性能敏感场景,还需要进行一些额外配置。

配置Docker守护进程:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://your-mirror.mirror.aliyuncs.com"], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } } EOF sudo systemctl restart docker 

限制容器资源使用:

docker run -d --memory=512m --cpus=1 --name limited-container nginx 

配置日志轮转:

sudo tee /etc/docker/daemon.json <<-'EOF' { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } EOF sudo systemctl restart docker 

10. 实际应用案例

让我们通过一个实际案例来巩固所学知识 - 部署一个WordPress网站。

首先创建自定义网络:

docker network create wordpress-net 

启动MySQL容器:

docker run -d --name mysql --network wordpress-net -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress -v mysql-data:/var/lib/mysql mysql:5.7 

启动WordPress容器:

docker run -d --name wordpress --network wordpress-net -p 8080:80 -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress -e WORDPRESS_DB_NAME=wordpress wordpress 

现在访问http://你的服务器IP:8080就可以开始WordPress的安装流程了。这个例子展示了如何将多个容器连接在一起工作,以及如何使用环境变量配置应用。

小讯
上一篇 2026-04-19 18:13
下一篇 2026-04-19 18:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271744.html