【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

本文为大家介绍一下,使用Portainer以可视化的方式来管理多台轻量应用服务器的Docker容器。

应用场景

之前Lighthouse 5分钟系列教程里,介绍了使用Docker在轻量应用服务器上搭建应用服务,比如搭建bitwarden个人密码管理器搭建calibre-web个人在线图书馆打造沉浸式Markdown写作环境。这些教程中使用命令的方式来操作Docker,而且多台轻量应用服务器中的Docker容器需要登录多台服务器分别进行管理,不是很方便。本文为大家介绍一下,使用Portainer以可视化的方式来管理多台轻量应用服务器的Docker容器。

Portainer简介

Portainer是一款免费且开源的容器图形化管理工具。它能在数据中心和边缘节点与Kubernetes,Docker,Docker Swarm,Azure ACI共同工作。

Portainer去除了复杂的编排工作,这使开发者可以快速、容易和精确地部署应用。除了管理应用,它还能用来观察容器的行为,管理底层平台并为使用者提供了安全检查和权限管控的能力,使容器的部署工作更加安全。

下图是Portainer官网提供的Portainer功能定位。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

Portainer与轻量应用服务器

轻量应用服务器自带Docker镜像,个人开发者可能会在多个轻量应用服务器中,运行多个Docker容器,使用Portainer可以对多台服务器中的Docker容器进行集中地和图形化地管理。Portainer有非常友好的控制页面,这能够让使用者在不熟悉Docker命令的情况下,对Docker容器进行管理,使用起来非常便利。如下图所示。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

Portainer安装

接下来,我们介绍一下如何使用Portainer Server管理多个轻量应用服务器中的Docker容器。下图是整体的架构图。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

4.1. 安装Portainer Server

我们需要一台安装了Docker镜像的轻量应用服务器(购买方法可以参考Lighthouse5分钟教程),使用Docker来安装Portainer Server。在腾讯云轻量应用服务器控制台中使用一键登录功能,登录服务器,用如下命令安装Portainer Server。

docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

4.2. 防火墙放通Portainer端口

在轻量应用服务器实例的防火墙页面,放通Portainer使用的端口。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker
【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

4.3. 登录Portainer Server

在浏览器中访问http://ip:9000,先设置登录的账号的密码,接下来就可以登录Portainer的管理页面了。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

4.4. 管理本机Docker容器

现在我们要管理的是本机的Docker容器,这里选择Docker,然后点击Connect。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

这时本地的Docker就纳入到Portainer Server的管理中了,我们可以看到本地已经有三个容器在运行中。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

4.5. 管理远端Docker容器

4.5.1. 放开远端Docker容器的API控制

使用Portainer管理远端的Docker容器,那么我们要放开远端服务器Docker 的API控制。SSH登录远端轻量应用服务器执行如下操作。

sudo root
vim /usr/lib/systemd/system/docker.service
#在ExectStart参数中新增-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock
【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

保存systemd的配置文件后,重启Docker。

systemctl daemon-reload && systemctl restart docker

4.5.2. 防火墙放通Docker API端口

在远端轻量应用服务器的防火墙控制台,放通Docker API端口2375。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

4.5.3. 新增远端Docker的Endpoint

开放远端服务器的Docker API端口后,我们在Portainer的导航栏找到Endpoints,新增一个Endpoint。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

Endpoint Url,输入远端轻量应用服务器的IP地址,端口2375。如果远端服务器与Portainer Server都是同地域的轻量应用服务器,我们输入内网IP。如果是不同地域的轻量应用服务器,我们需要输入外网IP。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

这样远端轻量应用服务器的Docker容器,也可以在Portainer中进行管理了。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

Portainer使用

现在我们介绍一下使用Portainer对Docker进行管理。

5.1. 使用AppTemplates安装Nginx

5.1.1. 安装Nginx

Portainer自带App Templates,其中包含了一些常用的docker 容器,选择Nginx安装。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

Name为容器的名字,输入nginx,点击Deploy the container。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

5.1.2. 查看Container list

安装完成后,在Container list中,看到nginx已经启动了。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

5.1.3. 访问Nginx

这里我们访问http://ip:32776

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

5.2. 使用Stack安装chevereto

在Portainer Stack中可以使用Docker-compose安装应用。这里我们使用《【5分钟玩转Lighthouse】打造沉浸式Markdown写作环境》这篇文章里的docker-compose文件,在Portainer中安装chevereto图床

5.2.1. 创建Stack

在Stacks页面,点击CreateStack,然后将docker-compose文件的内容复制粘贴的Web editor中,点击Deploy。如下图所示。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker
【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

5.2.2. 查看Stack details

等待Stack部署成功之后,可以在Stack details中查看docker-compose启动的全部容器。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

5.2.3. 访问chevereto

在浏览器中访问 http://ip:80 就可以看到chevereto的页面了。

【5分钟玩转Lighthouse】轻量应用服务器轻松玩转Docker

总结

使用Portainer提供的图形化界面,我们可以很轻松地管理多台轻量服务器的Docker容器,不用再使用命令行输入Docker命令,就能完成容器的部署、停止、删除和开启等操作。Portainer进一步降低了Docker的使用门槛,使得我们可以将更多精力用在服务上面,专心完成工作。

本文限于篇幅,仅介绍了Portainer的安装、Endpoint管理、单个容器部署和Docker Compose多个容器的部署的内容。实际上Portainer还能进行容器镜像、网络、数据卷、Docker镜像仓库管理等多方面的工作,这些内容可以在后续Lighthouse 5分钟系列教程中介绍。

参考资料

腾讯云轻量应用服务器

Portainer

【5分钟玩转Lighthouse】打造沉浸式Markdown写作环境

本文来自腾讯云计算社区,转载请注明出处:https://computeinit.com/archives/4440

发表评论

登录后才能评论
交流群