本文最后更新于 2024-05-07,文章可能存在过时内容,如有过时内容欢迎留言或者联系我进行反馈。
前言 {#%E5%89%8D%E8%A8%80}
本教程基于绿联的NAS设备DX4600 Pro 的docker 功能进行搭建,可以完美的替代NAS自带的Docker管理工具,最重要的是在Portainer 内可以使用Docker Compose的方式进行部署你的Docker容器。当我们找到想要部署的项目时,如果安装文档有提供docker run
命令,则可以把docker run
命令通过Composerize(https://www.composerize.com)进行在线转换成docker compose的格式。
简介 {#%E7%AE%80%E4%BB%8B}
Portainer是一款开源的轻量级管理工具,旨在帮助用户轻松使用Docker。它通过简单直观的界面,提供对Docker容器、图像、网络和卷的管理。
主要特点如下:
-
容器管理:可以查看容器详情,同时支持容器的创建、启动、停止、删除等操作。
-
镜像管理:可以查看镜像详情,支持从Docker Hub或其他注册中心拉取镜像,也可以删除本地镜像。
-
网络管理:支持网络的创建、删除,以及查看网络详情。
-
卷管理:支持卷的创建、删除,以及查看卷详情。
此外,Portainer也提供了用户和团队管理的功能,可以定义对资源的访问权限,支持多用户操作和权限控制。
Portainer可部署为一个Docker容器,安装和使用都非常简单。它提供了一个用户友好的界面,使得Docker的使用变得非常方便,尤其适合没有Docker使用经验的用户。
部署 {#%E9%83%A8%E7%BD%B2}
-
打开"开启远程调试功能",通过设备绑定的手机号短信验证码来申请root密码。
-
使用SSH工具来连接NAS,"主机"填写NAS的IP地址,"端口"是固定的
922
,"用户名"是固定的root
,"密码"则是之前第1步打开"开启远程调试功能"所获得的验证码。这里演示使用的SSH工具是"FinalShell(https://www.hostbuf.com)",如果你熟悉SSH,可以使用自己喜欢的工具进行连接。
-
添加好连接以后,在"连接管理器"中直接双击刚刚添加好的连接。
-
出现下图所示则表示连接成功
-
在NAS中创建一个用于保存portainer数据和配置的目录
-
在SSH工具中输入
docker run
命令docker run -d --name=Portainer --restart=always --privileged=true -u 0:0 -p 9000:9000 -v /mnt/media_rw/009b87f9-de24-493e-b9cb-527d7490a557/.ugreen_nas/200390/Docker/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce
-
-d:后台运行容器
-
--name:为容器指定一个名称
-
--restart :容器重启策略(
always
:只要容器退出就重启容器) -
--privileged :特权模式(
true
:开启特权模式) -
-u :启动容器的用户(
0:0
:使用root用户启动容器) -
-p :容器内部端口绑定到指定的主机端口(
9000:9000
:主机(宿主)端口:容器端口) -
-v :工作目录映射(
宿主机路径:/data
)
/mnt/media_rw/009b87f9-de24-493e-b9cb-527d7490a557/.ugreen_nas/200390/Docker/portainer/data:/data
在此路径中"009b87f9-de24-493e-b9cb-527d7490a557"表示NAS中某个存储空间的UUID;
"200390 "表示你在绿联云社区(https://bbs.ugreengroup.com)的用户名,需要根据你实际的用户名进行修改此参数;"Docker/portainer/data"表示你在NAS中某个存储空间内所创建用于映射的工作目录,需要根据你实际创建的映射工作目录进行修改此参数;
- 6053537/portainer-ce:汉化版的portainer镜像
-
-
登录绿联云社区(https://bbs.ugreengroup.com)查看自己的用户名
-
通过SSH工具查询自己所创建的映射目录所在的存储空间
/mnt/media_rw/{uuid}/.ugreen_nas/{userid}/{folder}
SSH登录后,很容易的在
/mnt/
目录下找到挂载的存储,其名称一般为/mnt/dm-{index}/.ugreen_nas/{userid}/{folder}
其中index 是一个序号,从0开始,建立了多少个存储就有多少。{userid}
是用户ID,其中userID是显然不会变化的。问题就出在这个index上,设备重启后,这个
dm-{index}
是会变化的。如果你只有一个存储,那么无所谓,永远是
dm-0
。因此在命令行创建docker 时,映射物理路径时,需使用
/mnt/media_rw/{uuid}/.ugreen_nas/{userid}/{folder}
下的软连接路径,不能使用dm-{index}
的实际装载路径,否则一重启就完蛋
-
根据自己实际情况修改上述所说的
docker run
命令以后,输入命令,然后回车,出现下图所示则表示成功
-
在浏览器中输入
{IP}:{Port}
,即可访问。
使用 {#%E4%BD%BF%E7%94%A8}
请参照官方文档Portainer Doc(https://docs.portainer.io)