搭建一个免费开源好用的Docker面板 Portainer

Portainer是一个好用的Docker容器控制面板。它的代码仓库在这里。它支持单节点和集群部署。

在此之前,我已经将个人服务器完全容器化了。如果能够可视化操作、监控各种容器,对于日常的运维帮助很大,感觉一切尽在掌握。

可以看看搭建好后的效果,界面还是很美观的。

可以快速拉取镜像

可以可视化发布容器,并灵活设置环境变量、网络、重启策略等等参数。

可以在镜像更新的时候,快速用新镜像更新容器。

还可以快速进入接入容器命令行,查看容器日志。

可以说,我日常需要的功能都有,感觉很完善了。

搭建

那么对于单点服务器来说,该如何搭建呢,首先你要确认你的服务器目前有安装Docker。

可以输入docker -v来看看当前环境中是否存在docker。

如果不存在,需要安装docker,你可以在Google找找教程。对于AWS的EC2,可以输入sudo yum install docker -y来安装。

确认安装好Docker后。确认一下Docker是否启动。然后看看/var/run路径下是否有docker.sock文件。

然后,确认8000端口和9443端口都没有被占用,因为Portainer后续要用到这两个端口。

将应用数据存储在Docker Volume

如果你想将Portainer产生的应用数据存在Docker Volume中,你可以直接执行下面的命令。后续部署完成后,Portainer所使用的Docker Volume也可以在Portainer看到并管理。如果8000端口被占用了,可以将-p 8000:8000改成其他端口,类似-p 12345:8000。9443端口也是类似。

如果你想指定容器名为其他,可以修改–name参数,比如说--name myportainer

% docker volume create portainer_data 
% 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

 

将应用数据映射到宿主机的其他地方

你可以在/data下建立目录portainer,所以说,最终的路径是/data/portainer。我最终选择了这种方式,因为我单独购买了AWS的数据盘来存储我的服务器的应用数据。所以我倾向于将应用数据都存在数据盘中。

其他参数设置和上面的部分一致。

% docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer:/data portainer/portainer-ce:latest

 

确认部署状态

然后执行docker ps来确认Portainer是否正常启动。可以参考我的截图中的红框中的信息。

如果你等待几分钟,看到Status为Up xxx minutes的话,说明Portainer容器已经成功启动了。

然后,你可以访问 https://localhost:9443 来访问面板,并设置管理员密码。