本文最后更新于 2024-05-07,文章可能存在过时内容,如有过时内容欢迎留言或者联系我进行反馈。

前言

本教程基于绿联的NAS设备DX4600 Prodocker功能进行搭建,可以完美的替代NAS自带的Docker管理工具,最重要的是在Portainer内可以使用Docker Compose的方式进行部署你的Docker容器。当我们找到想要部署的项目时,如果安装文档有提供docker run​命令,则可以把docker run​命令通过Composerize(https://www.composerize.com)进行在线转换成docker compose的格式。

简介

Portainer是一款开源的轻量级管理工具,旨在帮助用户轻松使用Docker。它通过简单直观的界面,提供对Docker容器、图像、网络和卷的管理。

主要特点如下:

  • 容器管理:可以查看容器详情,同时支持容器的创建、启动、停止、删除等操作。

  • 镜像管理:可以查看镜像详情,支持从Docker Hub或其他注册中心拉取镜像,也可以删除本地镜像。

  • 网络管理:支持网络的创建、删除,以及查看网络详情。

  • 卷管理:支持卷的创建、删除,以及查看卷详情。

此外,Portainer也提供了用户和团队管理的功能,可以定义对资源的访问权限,支持多用户操作和权限控制。

Portainer可部署为一个Docker容器,安装和使用都非常简单。它提供了一个用户友好的界面,使得Docker的使用变得非常方便,尤其适合没有Docker使用经验的用户。

​​

部署

  1. 打开“开启远程调试功能”,通过设备绑定的手机号短信验证码来申请root密码。

    ​​​​

  2. 使用SSH工具来连接NAS,“主机”填写NAS的IP地址,“端口”是固定的922​,“用户名”是固定的root​,“密码”则是之前第1步打开“开启远程调试功能”所获得的验证码。

    这里演示使用的SSH工具是“FinalShell(https://www.hostbuf.com)”,如果你熟悉SSH,可以使用自己喜欢的工具进行连接。

    ​​

  3. 添加好连接以后,在“连接管理器”中直接双击刚刚添加好的连接。

    ​​

  4. 出现下图所示则表示连接成功

    ​​

  5. 在NAS中创建一个用于保存portainer数据和配置的目录

    ​​

  6. 在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镜像

  7. 登录绿联云社区(https://bbs.ugreengroup.com)查看自己的用户名

  8. 通过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}​的实际装载路径,否则一重启就完蛋

    ​​

  9. 根据自己实际情况修改上述所说的docker run​命令以后,输入命令,然后回车,出现下图所示则表示成功

    ​​

  10. 在浏览器中输入{IP}:{Port}​,即可访问。

    ​​

使用

请参照官方文档Portainer Doc(https://docs.portainer.io