7.5 Portainer面板

实验目标
- 部署并运行 Portainer 服务。
- 熟悉 Portainer 的基本操作。
- 学习如何在 Portainer 图形化界面中完成 Docker 的常用管理任务。
实验过程
1. 创建数据卷
首先,我们需要创建一个 Docker 数据卷。这个数据卷的作用是持久化存储 Portainer 的配置信息,这样即使 Portainer 容器被删除或重建,我们的配置也不会丢失。
docker volume create portainer_data
2. 部署 Portainer 容器
接下来,我们使用 docker run
命令来启动 Portainer 服务。
docker run -d \
-p 8000:8000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
这条命令看起来有点长,我们来分解一下各个参数的含义:
-d
: 表示在后台(detached mode)运行容器。-p 8000:8000
和-p 9443:9443
: 将主机的端口映射到容器的端口。9443
端口用于访问 Portainer 的 Web 界面(HTTPS),8000
端口用于 Edge Agent。--name portainer
: 给容器起一个好记的名字,方便我们以后管理。--restart=always
: 设置容器的重启策略。always
表示无论何种原因导致容器停止,Docker 都会自动重启它,保证了服务的高可用性。-v /var/run/docker.sock:/var/run/docker.sock
: 这是一个关键的挂载。它将主机上的 Docker socket 文件映射到容器内部。Portainer 就是通过这个文件来与 Docker 守护进程通信,从而实现对 Docker 的管理。-v portainer_data:/data
: 将我们第一步创建的portainer_data
数据卷挂载到容器的/data
目录,用于存放 Portainer 的数据。portainer/portainer-ce:latest
: 指定要使用的镜像,这里我们用的是 Portainer 社区版(Community Edition)的最新版本。
3. 验证容器运行状态
执行完 docker run
命令后,我们可以用 docker ps
来检查 Portainer 容器是否成功运行。
docker ps
如果看到 portainer
容器正在运行(UP),就说明部署成功了。
4. 首次访问并设置管理员
现在,打开你的浏览器,访问 https://<服务器IP>:9443
。请将 <服务器IP>
替换成你服务器的实际 IP 地址。
首次访问时,Portainer 会要求你创建一个管理员账户。设置一个用户名和安全的密码,然后点击“Create user”按钮。
5. 连接到本地 Docker 环境
创建完管理员后,你会进入环境设置页面。选择“Get Started”,然后选择要管理的 Docker 环境。在这里,我们选择本地(Local)环境进行管理。
点击连接后,你就会看到 Portainer 的主仪表盘,这里展示了 Docker 环境的概览信息。花点时间熟悉一下界面布局吧!
任务挑战
-
添加镜像仓库: 在 Portainer 中添加一个新的镜像仓库(Registry),地址为
harbor.seahi.me
。 -
管理镜像: 尝试从刚刚添加的
harbor.seahi.me
仓库中,拉取python:alpine
这个镜像。 -
清理镜像: 找到并删除一些不再需要的或者临时的镜像,练习镜像管理。
-
部署应用栈: 这是一个综合任务。请将下面的命令行操作,转换为在 Portainer 中的等效操作,来部署一个 Typecho 博客应用。
Typecho 是什么?Typecho 是一个轻量、高效的开源博客程序。通过这个任务,你将学会如何在 Portainer 中创建网络、数据卷,并部署一个由数据库和 Web 服务组成的简单应用。
需要转换的命令:
-
第一步:创建资源
# 创建一个专用的网络,让博客和数据库容器在里面通信 docker network create typecho-network # 创建数据卷,分别用于存放博客内容和数据库文件 docker volume create typecho-content docker volume create typecho-mysql
-
第二步:部署 MySQL 数据库
docker run -d \ --name typecho-mysql \ --network typecho-network \ -e MYSQL_ROOT_PASSWORD=sqlpassword \ -e MYSQL_DATABASE=typecho \ -e MYSQL_USER=typecho \ -e MYSQL_PASSWORD=typecho \ -v typecho-mysql:/var/lib/mysql \ mysql:8.3.0
-
第三步:部署 Typecho 服务
docker run -d \ --name typecho-server \ --network typecho-network \ -e TYPECHO_SITE_URL=http://<你的IP地址> \ # 记得替换成你的IP -p 8080:80 \ -v typecho-content:/app/usr \ joyqi/typecho:1.2.1-php7.4-apache
-
http://<你的IP地址>:8080
,看看你的 Typecho 博客是不是已经成功运行了?