首页 > 其他分享 >828华为云征文|部署 Docker 的图形化管理工具 Portainer

828华为云征文|部署 Docker 的图形化管理工具 Portainer

时间:2024-09-21 09:50:16浏览次数:3  
标签:容器 Portainer 图形化 828 portainer 服务器 docker Docker

828华为云征文|部署 Docker 的图形化管理工具 Portainer

一、Flexus云服务器X实例介绍

云服务器是一种基于云计算技术的虚拟服务器,提供灵活的计算资源和存储空间。用户可以通过互联网访问和管理云服务器,无需购买和维护物理硬件。云服务器具有高可用性、可扩展性和成本效益,适用于各种应用场景,如网站托管、数据存储和大数据分析。用户可以根据需求动态调整资源配置,确保系统的高效运行和资源的最佳利用。

华为云下一代云服务器Flexus X实例焕新上线,新产品基于用户业务负载动态和内存峰值画像,动态推荐规格,减少算力浪费,提升资源利用率,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。

在这里插入图片描述

Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。

在这里插入图片描述
本次测评使用的规格是:4核12G-100G-3M规格的Flexus X实例基础模式

在这里插入图片描述

二、Flexus云服务器X实例配置

2.1 重置密码

购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是公网IP地址和用户名,首先打开你的服务器控制台,选择重置密码

在这里插入图片描述

勾选自动重启,点击确定即可

在这里插入图片描述

2.2 服务器连接

华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即ssh [email protected]命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。

我个人习惯使用 MobaXterm 这款软件,添加SSH连接,输出公网IP、用户名和端口(默认22),连接即可。

在这里插入图片描述

2.3 安全组配置

安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。

系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组

在这里插入图片描述

主要需要填写优先级(默认填1即可)、协议端口(协议一般为TCPUDP,端口一般选择你项目需要暴露的端口即可),描述(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。

在这里插入图片描述

如果还不清楚可以参考文档:安全组配置示例

2.4 Docker 环境搭建

本次服务器环境是ubuntu系统镜像,需要自己安装docker环境

服务器类别系统镜像内网IP地址Docker版本操作系统版本
Flexus云服务器X实例Ubuntu192.168.0.16827.2.0Ubuntu 22.04.4 LTS

使用apt-get命令安装docker及其配置

# 安装必要工具包
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 配置仓库源
$ sudo add-apt-repository \
      "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
      $(lsb_release -cs) \
      stable"	

# 更新apt包索引
$ sudo apt-get update

# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://ustc-edu-cn.mirror.aliyuncs.com/",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn",
        "https://ccr.ccs.tencentyun.com/",
        "https://docker.m.daocloud.io/",
        "https://dockerproxy.com",
    ]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

测试docker安装是否成功

root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```

检查docker服务状态

root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socket
       Docs: https://docs.docker.com
   Main PID: 24912 (dockerd)
      Tasks: 13
     Memory: 24.7M
        CPU: 3.778s
     CGroup: /system.slice/docker.service
             `-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

检查docker compose版本

root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2

三、Flexus云服务器X实例部署 Portainer

3.1 Portainer 介绍

Portainer是一个通用的容器管理平台,Portainer 的多集群和多设备支持意味着您可以在任何地方管理任何类型的环境(Docker 和 Kubernetes,在开发笔记本电脑上、在您的 DC、在云端或边缘运行),并且我们不要求您运行任何特定的 Kubernetes 发行版。 我们提供统一的用户体验,使采用混合和多云部署变得更加快速,提高用户管理其部署的效率,甚至允许您在一个管理窗格中混合使用 Docker 和 Kubernetes 端点。

  • 多环境支持
    Portainer支持Docker和Kubernetes,能够管理任何类型的环境,无论是在本地还是在云端。
  • 用户友好的界面
    它提供了一个直观的Web界面,使得即使是非技术用户也能轻松上手。
  • 灵活性
    用户无需依赖特定的Kubernetes发行版,可以根据需要自由选择。
  • 安全性
    Portainer支持访问控制和安全策略,确保容器环境的安全。
  • 集成与扩展性
    它能够与现有的CI/CD管道和其他DevOps工具集成,支持自动化部署和管理。
  • 社区支持
    作为一个开源项目,Portainer拥有活跃的社区,不断有新功能和改进被加入。

在这里插入图片描述

Portainer的设计目标是简化混合云和多云部署的采用过程,提高用户管理部署的效率,并允许在一个管理面板中混合使用Docker和Kubernetes端点。它提供了一个直观的Web界面,使得用户可以轻松地创建、管理和监控容器、容器堆栈、网络和服务。

  • 官网:https://www.portainer.io/
  • Github:https://github.com/portainer/portainer

3.2 Portainer 部署

  • 系统要求
Portainer 版本发布日期Docker 版本Kubernetes 版本架构
社区版CE 2.21.12024 年 9 月 10 日26.0.2 27.0.11.28 1.29 1.30ARM64平台
  • 创建 docker-compose.yml
version: "3.5"

services:
  portainer:
    image: portainer/portainer-ce:2.21.1
    container_name: portainer
    restart: always
    ports:
      - "8000:8000"
      - "9443:9443"
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./portainer_data:/data
    command:
      - "--http-enabled"
  • ports:配置访问端口
  • volumes:配置访问卷,映射容器内部文件路径到本地
  • http-enabled:用于启用http

如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d 即可自动拉取 Portainer 镜像,并创建并启动一个容器。 up 表示启动服务,-d 表示在后台执行。docker-compose down 命令用于停止和清理由 docker-compose up 启动的服务。

  • 配置安全组

在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听9000/9443端口,所以添加安全组为TCP:9000/9443协议端口。

在这里插入图片描述

这是因为端口 9443 仅接受 HTTPS 协议,而不接受 HTTP 请求。

  • 访问9443端口时地址中使用HTTPS协议。
    https://my.portainer.url:9443/
  • 如果您启用了 HTTP 访问,则可以通过端口 9000 上的 HTTP 进行访问:
    http://my.portainer.url:9000/
  • 启动服务

进入项目目录,执行docker compose up -d启动命令,会自动拉取容器并运行

从 Dockerhub 拉取 Portainer 镜像,地址:https://hub.docker.com/r/portainer/portainer-ce

root@flexusx-c6b3:~/portainer# docker-compose up -d
[+] Running 12/12
 ✔ portainer Pulled                                                                                                                                                                                  469.0s 
   ✔ 4127d56428a3 Pull complete                                                                                                                                                                        1.5s 
   ✔ ffdedde80950 Pull complete                                                                                                                                                                        0.8s 
   ✔ d40df14c1d7a Pull complete                                                                                                                                                                      463.9s 
   ✔ 8215717c7c10 Pull complete                                                                                                                                                                       18.8s 
   ✔ 542669febe7c Pull complete                                                                                                                                                                       78.5s 
   ✔ 6c27c7f45b54 Pull complete                                                                                                                                                                       32.7s 
   ✔ 47e858e07651 Pull complete                                                                                                                                                                      464.7s 
   ✔ dd1a5919c96d Pull complete                                                                                                                                                                       50.5s 
   ✔ b735e0aff190 Pull complete                                                                                                                                                                       64.5s 
   ✔ 6acf85cbc221 Pull complete                                                                                                                                                                       66.0s 
   ✔ 4f4fb700ef54 Pull complete                                                                                                                                                                       66.7s 
[+] Running 2/2
 ✔ Network portainer_default  Created                                                                                                                                                                  0.1s 
 ✔ Container portainer        Started
  • 检查容器状态

检查 Portainer 容器状态,确保容器正常启动

root@flexusx-c6b3:~/portainer# docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED             STATUS             PORTS                                                                                                                             NAMES
f0b8b629c16d   portainer/portainer-ce:2.21.1   "/portainer --http-e…"   About an hour ago   Up About an hour   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp   portainer
  • 访问地址

内网:http://localhost:9000
外网:http://公网IP:9000

  • 访问结果

在这里插入图片描述

若出现此页面,则部署 Portainer server 成功。

3.3 Portainer 使用

服务启动后访问,可进行初始设置,第一位用户将是管理员,用户名默认为admin,但您可以根据需要更改,设置管理员,密码密码必须至少为 12 个字符,启用或禁用统计信息收集

在这里插入图片描述

确定设置后,创建用户

首次安装 Portainer 时,如果您未在 5 分钟内登录并完成初始设置,容器内的 Portainer 服务将停止。

在这里插入图片描述
创建管理员用户后,环境向导将自动启动,该向导将帮助您开始使用 Portainer。安装过程会自动检测您的本地环境并为您进行设置,可以直接选择开始使用 Portainer。如果您想添加其他环境来管理此 Portainer 实例,请单击添加环境

在这里插入图片描述

仪表板为我们提供了 Portainer 配置为与之通信的 Docker 实例的当前状态概览,如CPU、内存信息,镜像

在这里插入图片描述
Portainer 官方没有支持的简体中文的设置,默认英文,可以借助翻译插件实时翻译,当然也可以借助一些开源的汉化方案,如github.com/eysp/public/,我使用了一下但是汉化成功了,但是创建不了管理员用户,所以放弃了。

# 下载解压并复制到服务器
tar -zvxf public-public.tar.gz
scp -r public-public [email protected]:/root/portainer/portainer_public

#修改 docker-compose.yml
- volume:
	./portainer_public:/public

点击本地环境的 Dashboard,查看更多环境信息,这显示了我有多少个正在运行的容器,下载的镜像数量,还可以看到 Docker 实例上可用的卷和网络的数量,还会显示正在运行的堆栈数量

在这里插入图片描述

左侧菜单中的 App Template,这部分可能是唯一一个不是核心 Docker 引擎直接提供的功能,它是使用从 Docker Hub 下载的容器启动常用应用程序的一种方式,支持搜索和分类查询。Portainer 默认提供约 25 种模板,模板以 JSON 格式定义的。

在这里插入图片描述
Docker Stack 是 Docker Swarm 环境中用于管理一组相关服务的工具,它使得在 Swarm 集群中部署、管理和扩展一组相互关联的服务变得简单,主要用于定义和编排容器化应用的多个服务。在左侧菜单 Stacks 中可以查看

在这里插入图片描述
左侧菜单中的Contains 这里,你可以启动 Docker 实例上运行的容器并与之交互,点击 "容器 "菜单项,就会显示 Docker 实例上正在运行和已停止的所有容器的列表,我这里运行了2个容器。可以进行启动、停止、重启、暂停、恢复、删除等操作

在这里插入图片描述

点击任意一个容器,可以查看容器详情,比如容器ID、容器名字、运行状态、创建时间、控制权限等

在这里插入图片描述

可以点击add container按钮创建容器,创建容器页面上有几个选项,应按如下方式填写,完成后,点击 “部署容器”,几秒钟后,运行中的容器列表就会显示新启动的容器

Name: cluster
Image: russmckendrick/cluster
Always pull the image: On
Publish all exposed network ports to random host ports: On

在这里插入图片描述

左侧菜单 Image 是镜像,在这里可以管理、下载和上传镜像。在页面顶部,只需在框中输入 mysql,然后点击拉取镜像,就能从 Docker Hub 下载一份 mysql 容器镜像

在这里插入图片描述

Network 中可以使用默认网桥驱动程序快速添加网络。单击 "高级设置 "将带你进入一个包含更多选项的页面,其中包括使用其他驱动程序、定义子网、添加标签和限制外部访问网络,也可以删除网络和检查现有网络

在这里插入图片描述

Volume 中可以添加或删除加密卷。在添加加密卷时,你可以选择驱动程序,还可以填写传递给驱动程序的选项,这样就可以使用第三方驱动程序插件

在这里插入图片描述

Events 活动页面显示过去 24 小时内的所有活动

在这里插入图片描述

Host 中显示的是 docker info 命令的输出结果

在这里插入图片描述

左侧功能栏还有一些设置,用户相关、环境相关、日志信息、设置等

在这里插入图片描述

左上角管理员头像也可以进行设置,可以设置主题、修改密码等

在这里插入图片描述

Portainer 的强大功能,如访问控制、安全策略和集成支持,进一步增强了其易用性,使其成为 IT 专业人员和开发人员管理复杂容器环境的理想选择。作为Docker玩家,可以轻松的部署一些有意思的项目,更好的管理镜像和容器,可视化的管理更加容易直观。Portainer 社区版的功能模块都熟悉了一遍,常用的操作也都看一下,但是还是有很多设置配置需要研究下,期待有简体中文的官方版本,翻译的专有名词总是很奇怪,更多有趣的设置和功能就需要自行探索了。

四、总结

Portainer 提供了一个直观且用户友好的界面,使得管理 Docker 和 Kubernetes 容器变得异常简单。它的多环境支持和灵活的配置选项,让用户能够轻松地在本地、云或边缘环境中部署和管理容器。此次使用的Flexus X实例配置还是很高的4核12G-100G-3M规格基础模式,本地部署创建了2、3个容器同时使用也很流畅,没有延迟和卡顿现象,没有网络问题或者重启掉线问题,使用体验很好,对于普通玩家都可以轻松部署有意思的项目的,无压力。对于更大规模的部署,可能需要更高的配置,以确保流畅的性能和响应速度。

华为云服务器,以卓越的性能和稳定性著称,提供灵活的资源配置,满足不同业务需求。现在华为云服务器现正进行828 B2B企业节,享受限时优惠,免费试用和专属技术支持,让您的业务更上一层楼。立即行动,体验华为云的高效与便捷,助力您的企业快速成长。

在这里插入图片描述

标签:容器,Portainer,图形化,828,portainer,服务器,docker,Docker
From: https://blog.csdn.net/maxxspace/article/details/142407168

相关文章