原创 acchen AC技术与生活
在当今的容器化技术浪潮中,Docker 无疑是一颗耀眼的明星。然而,对于许多开发者和运维人员来说,通过命令行管理 Docker 环境可能会显得有些繁琐和复杂。这时,Portainer
这款轻量级的可视化 Docker 管理平台就应运而生,为我们提供了一种更加便捷、高效的管理方式。
一、Portainer 是什么?
Portainer 是一款功能强大且轻量级的可视化 Docker 管理平台,它能够轻松地管理单机环境以及集群环境中的 Docker。无论是部署在 K8s、Docker 还是 Swarm 环境中,Portainer 都能游刃有余,并且一个平台就可以管理多个环境,为用户提供所有容器的统一视图,让我们可以清晰地掌控整个 Docker 生态系统。其官网为:(https://www.portainer.io/)。
二、Portainer 的安装
官方安装文档
在开始安装之前,我们可以参考官方安装文档:(https://docs.portainer.io/start/install-ce/server/docker/linux),这将为我们的安装过程提供详细的指导。
安装步骤
创建容器卷首先,我们需要创建一个容器卷,用于存储 Portainer 的数据。在命令行中执行:
docker volume create portainer_data
这一步骤将为后续的安装和数据存储做好准备。
运行容器接下来,运行 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:2.21.3
这个命令中的参数含义如下:
-d:表示在后台运行容器。
-p 8000:8000 -p 9443:9443:将容器内部的 8000 端口和 9443 端口映射到主机的相应端口,以便我们可以通过主机的 IP 地址和端口访问 Portainer。
--name portainer:为容器指定一个名称,方便后续管理。
--restart=always:设置容器在意外停止时自动重启。
-v /var/run/docker.sock:/var/run/docker.sock:将主机的 Docker 套接字挂载到容器内部,使容器能够与主机的 Docker 守护进程进行通信。
-v portainer_data:/data:将之前创建的容器卷挂载到容器的 /data 目录,用于存储 Portainer 的数据。
查看是否启动成功运行完容器后,我们可以通过以下命令查看容器是否启动成功:
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
de5b28eb2fa9 portainer/portainer-ce:2.21.3 "/portainer" 11 seconds ago Up 9 seconds 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp portainer
如果看到类似的输出,说明 Portainer 容器已经成功启动。
访问成功启动容器后,我们可以通过访问地址:https://192.168.0.145:9443/ 来打开 Portainer 的界面。
需要注意的是,由于 Portainer 采用自签证书,访问时会报 SSL 错误,我们可以选择忽略该错误继续访问。
设置初始密码首次登录 Portainer 时,会要求我们设置初始密码。在登录页面输入用户名(默认为 admin)和密码,并确认密码后,点击“Create user”按钮即可完成初始密码的设置。
成功登录后,我们就可以查看到自己的实例,进入到 Portainer 的管理界面,在这里我们可以对 Docker 环境进行各种管理操作。
三、添加新的 Docker 主机到平台
假设我们现有一台主机 192.168.0.147,已经安装了 Docker 环境,我们希望通过 Portainer 来管理这台主机。
在 147 这台机器上安装代理在 147 这台机器的命令行中执行以下命令来安装 Portainer 代理:
docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.21.3
这个命令的作用是在 147 主机上启动一个 Portainer 代理容器,使其能够与我们之前部署的 Portainer 服务端进行通信。
在 Portainer 平台添加环境(主机)登录到 Portainer 平台,进入“Environments - Add environment”页面。
选择 Agent 并填写相关信息在添加环境页面,选择“Agent”,然后在“Environment details”处填入一个名称(例如:DockerHost147)和新主机的地址(192.168.0.147)。
查看新添加的主机添加完成后,回到首页,我们就可以看到新添加的 Docker 环境(主机),这样我们就可以在 Portainer 平台上统一管理多台 Docker 主机了。
四、Portainer 的主要功能
4.1 容器管理
在 Portainer 中,我们可以轻松地查看正在运行的容器、已停止的容器以及所有容器的详细信息。对于每个容器,我们可以进行启动、停止、重启等操作,还可以查看容器的日志、监控容器的资源使用情况,如 CPU 使用率、内存使用率等。此外,我们还可以通过简单的操作对容器进行参数调整,以满足不同的应用需求。
4.2 镜像管理
Portainer 提供了对 Docker 镜像的全面管理功能。我们可以查看本地和远程仓库中的镜像,进行镜像的拉取、推送和删除操作。同时,还可以对镜像进行标签管理,方便我们快速识别和使用不同版本的镜像。在镜像构建方面,Portainer 也提供了一定的支持,我们可以通过配置文件来构建自定义的镜像。
4.3 网络管理
对于 Docker 网络,Portainer 允许我们查看和管理不同类型的网络,包括 bridge 网络、overlay 网络等。我们可以创建新的网络、删除不需要的网络,以及对网络的参数进行调整。通过网络管理功能,我们可以更好地组织和隔离不同的容器,提高系统的安全性和可维护性。
4.4 卷管理
卷是 Docker 中用于数据持久化的重要机制。Portainer 使我们能够方便地管理容器卷,包括查看卷的使用情况、创建新的卷以及删除不再需要的卷。通过卷管理,我们可以确保容器中的数据在容器停止或删除后仍然得以保留,为数据的安全性提供了保障。
五、Portainer 的优势
5.1 可视化操作界面
相比传统的命令行管理方式,Portainer 的可视化界面更加直观、易于操作。无论是新手还是经验丰富的开发者和运维人员,都可以通过简单的点击和拖拽等操作完成各种管理任务,大大降低了学习成本和操作难度。
5.2 跨平台支持
Portainer 可以在多种操作系统上运行,包括 Linux、Windows 和 macOS。这使得我们可以在不同的平台上使用相同的工具来管理 Docker 环境,提高了工作效率和便利性。
5.3 轻量级部署
Portainer 本身是一个轻量级的应用程序,占用资源少,部署快速。无论是在小型开发环境还是大型生产环境中,都能轻松部署和使用,不会对系统性能造成太大的影响。
5.4 安全性保障
Portainer 提供了一定的安全机制,如用户认证、访问控制等。我们可以设置不同的用户角色和权限,确保只有授权的用户才能进行相应的管理操作,提高了系统的安全性。
六、同类工具对比
6.1 Rancher
Rancher 也是一款强大的容器管理平台,它支持多种容器编排引擎,如 Kubernetes、Docker Swarm 等。与 Portainer 相比,Rancher 的功能更加丰富和复杂,适合大型企业级应用场景。然而,对于一些小型项目或个人开发者来说,Rancher 可能过于庞大和复杂,学习成本较高。
6.2 Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它通过编写 YAML 配置文件来管理容器的启动和停止等操作。虽然 Docker Compose 也提供了一定的可视化管理功能,但相比 Portainer,它的功能相对较为简单,主要侧重于容器的编排和部署。
七、总结
Portainer 以其轻量级和可视化的特点,为我们管理 Docker 环境提供了极大的便利。无论是安装过程还是添加新主机的操作,都相对简单易懂。希望通过这篇文章的介绍,能让更多的开发者和运维人员了解并使用 Portainer,提升工作效率,更好地驾驭 Docker 环境。
项目地址
https://github.com/portainer/portainer
参考🔗
https://mp.weixin.qq.com/s/lcccxWcUF9e0ePGfpAhFKg