在开始操作前,请确保你的服务器操作系统为 CentOS 7.x 或版本更高的 CentOS Stream,且具备 root 权限。本指南以 CentOS 7 为标准环境。如果你使用的是 Ubuntu,安装命令会有所不同,请务必对应系统版本调整。
首先执行以下命令检查系统内核版本,Docker 要求 CentOS 系统内核版本高于 3.10:
```bash uname -r ```如果内核版本低于 3.10,建议先升级内核或更换服务器。同时,为了确保安装过程顺利,建议先更新系统软件包:
```bash yum update -y ```如果服务器之前安装过 Docker 或其相关组件,必须先彻底卸载旧版本及其依赖,否则会导致安装冲突、服务无法启动或依赖库报错。执行以下命令进行清理:
```bash yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine ```执行完毕后,旧版本的 Docker 相关文件会被移除,但 /var/lib/docker/ 目录中的镜像、容器、卷和网络等数据会被保留,如需彻底清理可手动删除该目录。
我们将使用官方 yum 仓库安装最新稳定版的 Docker CE(社区版)。为了提高下载速度,这里配置阿里云镜像源。
1. 安装必要的依赖包。yum-utils 提供了 yum-config-manager 功能,device-mapper-persistent-data 和 lvm2 是 Docker devicemapper 存储驱动所需的依赖:
```bash yum install -y yum-utils device-mapper-persistent-data lvm2 ```2. 设置稳定的 Docker 仓库。这里添加阿里云的镜像源,速度比官方源快很多:
```bash yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ```3. 安装 Docker CE。直接执行以下命令安装最新版:
```bash yum install docker-ce -y ```4. 启动 Docker 服务并设置开机自启:
```bash systemctl start docker && systemctl enable docker ```5. 验证安装是否成功。运行 hello-world 镜像,如果输出 "Hello from Docker!" 则说明引擎安装无误:
```bash docker run hello-world ```由于 Docker Hub 位于国外,直接拉取镜像速度极慢甚至失败。必须配置国内镜像加速器。这里推荐使用 Docker 官方提供的国内加速源或阿里云加速源。
1. 编辑 Docker 配置文件。如果 /etc/docker/ 目录不存在,请先创建目录:
```bash mkdir -p /etc/docker vi /etc/docker/daemon.json ```2. 在文件中输入以下完整的 JSON 内容。注意 JSON 格式必须严格正确,双引号不能少,最后一项不能有逗号:
```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } ```3. 保存退出编辑器(:wq),然后重新加载配置并重启 Docker 使配置生效:
```bash systemctl daemon-reload systemctl restart docker ```Portainer 是目前最轻量级且功能强大的 Docker 可视化管理 UI,它本身也以容器形式运行。我们将它部署在 Docker 中,并管理宿主机的 Docker 环境。
1. 首先创建一个数据卷,用于存储 Portainer 的配置数据(如用户、设置等),防止容器重启后数据丢失:
```bash docker volume create portainer_data ```2. 运行 Portainer 容器。请确保服务器 9000 端口未被占用。执行以下命令:
```bash docker run -d \ -p 9000:9000 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ cr.portainer.io/portainer/portainer-ce:latest ```命令参数详解:
如果浏览器无法访问面板,通常是防火墙拦截了请求。请执行以下步骤放行 9000 端口。
1. 如果是 CentOS 7 使用 firewalld 防火墙,执行:
```bash firewall-cmd --zone=public --add-port=9000/tcp --permanent firewall-cmd --reload ```
2. 如果是云服务器(如阿里云、腾讯云、AWS),除了系统内部防火墙,还必须去云厂商控制台的 安全组 设置中,添加一条入站规则:允许 TCP 协议,端口 9000,源地址 0.0.0.0/0。
1. 打开浏览器,在地址栏输入 http://你的服务器IP:9000。首次访问会跳转到用户注册页面。
2. 在 Create user 页面,输入用户名(建议使用 admin)和密码。Portainer 对密码强度有要求,必须超过 12 个字符且包含大小写字母和数字。输入完毕后点击 Create user。
3. 接下来选择 Docker 环境。默认会显示 local,这是通过挂载 docker.sock 识别到的本地环境。直接点击 Get Started 即可进入控制台。
4. 进入 Dashboard 后,你可以直观地看到运行中的容器数量、镜像数量、网络卷占用情况以及 CPU 和内存的实时使用率。
为了验证面板功能,我们完全通过 Web 界面部署一个 Nginx 服务,不再使用命令行。
1. 在左侧菜单栏点击 Containers(容器),然后点击右上角的 + Add container 按钮。
2. 在 Name 输入框填写:my-nginx。
3. 在 Image 输入框填写:nginx:latest。Portainer 会自动识别镜像名称。
4. 滚动页面到 Manual network port publishing(手动网络端口发布)区域:
5. 确认无误后,点击底部的 Deploy the container 按钮。
6. 页面会自动跳转回容器列表。几秒钟后,你会看到 my-nginx 的状态变为 running 且状态栏是绿色的。
7. 打开浏览器新标签页,访问 http://你的服务器IP:8080。如果屏幕显示 "Welcome to nginx!",说明通过可视化面板部署服务成功。
Portainer 的核心价值在于简化日常运维中最繁琐的日志查看和容器排查工作。
1. 查看实时日志: 在容器列表中,找到 my-nginx,点击最右侧的 Logs 图标(通常显示为几条横线)。在弹出的页面中,你可以选择 Stdout(标准输出)或 Stderr(错误输出)。勾选 Auto-scroll 选项,页面会自动滚动显示最新的日志内容,这对于排查 Web 服务启动报错非常有用。
2. 进入容器终端: 点击容器名称进入详情页,点击顶部的 Console 按钮,保持默认的 /bin/sh,点击 Connect。此时你直接在浏览器里就获得了一个容器的 Shell 终端。你可以执行 ls /etc/nginx/conf.d 等命令来检查配置文件,无需使用 SSH 登录服务器再执行 docker exec。
3. 资源监控与重启: 在容器详情页的 Stats 选项卡中,可以实时看到该容器占用的 CPU 和内存曲线。如果服务出现假死,直接点击容器列表中的 Restart 按钮即可重启,无需记忆复杂的 docker restart 命令。
随着使用时间增加,服务器上会堆积大量旧版本的镜像,占用宝贵的磁盘空间。
1. 点击左侧菜单的 Images。这里列出了所有已下载到本地的镜像。
2. 你可以勾选某个不再使用的镜像,点击顶部的 Remove 按钮进行删除。如果镜像正在被容器使用,系统会拒绝删除并提示。
3. 点击顶部的 Prune unused images(清理未使用的镜像)按钮。Portainer 会自动清理掉所有 "Dangling Images"(悬空镜像),即那些被新版本覆盖但未被删除的旧镜像层。这是释放磁盘空间最快、最安全的方法。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图