828华为云征文|华为云Flexus云服务器X实例之openEuler系统部署Docker Compose管理工具Dockge
- 前言
- 一、Flexus云服务器X实例介绍
- 1.1 Flexus云服务器X实例简介
- 1.2 Flexus云服务器X实例特点
- 1.3 Flexus云服务器X实例使用场景
- 二、Dockge介绍
- 2.1 Dockge简介
- 2.2 Dockge功能
- 三、本次实践介绍
- 3.1 本次实践简介
- 3.2 本次环境规划
- 四、远程连接华为云Flexus云服务器X实例
- 4.1 购买Flexus云服务器X实例
- 4.2 查看Flexus云服务器X实例状态
- 4.3 使用Xshell远程连接
- 五、检查Flexus云服务器X实例系统环境
- 5.1 检查操作系统版本
- 5.2 检查内核版本
- 5.3 检查Docker版本
- 5.4 检查Docker服务状态
- 5.5 检查Docker compose版本
- 六、部署Dockge应用
- 6.1 下载Dockge镜像
- 6.2 创建部署目录
- 6.3 编辑docker-compose.yaml文件
- 6.4 创建Dockge容器
- 6.5 查看Dockge容器状态
- 6.6 查看Dockge容器日志
- 6.7 查看资源使用情况
- 七、访问前准备工作
- 7.1 关闭防火墙与selinux
- 7.2 Flexus云服务器X实例安全组配置
- 八、访问Dockge服务
- 8.1 访问Dockge初始页
- 8.2 创建管理账号
- 8.3 访问Dockge首页
- 九、创建compose应用
- 9.1 创建测试应用
- 9.2 查看容器组状态
- 9.3 访问测试Nginx服务
- 十、管理现有堆栈方法
- 10.1 停止当前堆栈
- 10.2 复制docker-compose.yaml文件
- 10.3 扫描堆栈文件夹
- 10.4 重新启动容器
- 十一、使用体验与总结
前言
华为云Flexus云服务器X实例
作为新一代面向中小企业和开发者的柔性算力解决方案,凭借其卓越的性能和高性价比,成为了理想的选择。当需要高效管理宿主机上的多个容器及其对应的 docker-compose.yaml 部署文件时,Dockge 以其精美的设计和易用性脱颖而出,成为不可或缺的管理工具。利用华为云Flexus云服务器X实例的强大性能,在openEuler系统上部署Dockge,不仅能够实现对容器应用的精细控制,更能充分发挥平台的高性能优势,为用户提供流畅的操作体验。
一、Flexus云服务器X实例介绍
1.1 Flexus云服务器X实例简介
- 官网地址: 华为云Flexus云服务器X实例
华为云
Flexus云服务器X实例
是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。
1.2 Flexus云服务器X实例特点
-
提供丰富的公共镜像:Flexus云服务器X实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。
-
可灵活自定义vCPU内存配比:用户可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。
-
智能感知业务动态升降配:Flexus云服务器X实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。
-
负载范围更高:相对于Flexus应用服务器L实例,Flexus云服务器X实例能够处理更高的负载,适用于更复杂和繁忙的场景。
1.3 Flexus云服务器X实例使用场景
Flexus云服务器X实例针对不同的使用场景展现出其独特的优势:
-
电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。
-
企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。
-
个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。
-
游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。
二、Dockge介绍
2.1 Dockge简介
Dockge 是一款设计精美、易于使用的自托管 Docker Compose.yaml 文件管理器,专注于为用户提供流畅的使用体验。它不仅支持创建、编辑、启动、停止、重启和删除 Compose.yaml 文件,还可以方便地更新 Docker 镜像,并通过交互式编辑器和网页终端增强操作便利性。Dockge 的一大特色是支持多代理管理,允许用户在一个统一的界面上操作来自不同 Docker 宿主机的多个堆栈。。
2.2 Dockge功能
- 🧑💼 管理 Compose.yaml 文件:支持创建、编辑、启动、停止、重启和删除 Compose.yaml 文件,同时还能更新 Docker 镜像。
- ⌨️ 交互式 Compose.yaml 编辑器:提供直观的编辑体验,方便用户调整配置。
- 🦦 交互式网页终端:无需离开浏览器即可执行命令行操作。
- 🕷️ 多代理支持(1.4.0新版特性):允许用户在一个统一的界面中管理来自不同 Docker 主机的多个堆栈。
- 🏪 将
docker run ...
命令转换为 Compose.yaml:简化从单一容器到多容器编排的过渡。 - 📙 基于文件的结构:Dockge 不会干扰您的现有文件结构,Compose.yaml 文件将继续以常规方式存储在本地,支持使用标准的
docker compose
命令进行交互。 - 🚄 响应式设计:所有操作都具有实时反馈,包括进度指示和终端输出。
- 🐣 精美且易于使用的界面:继承了 Uptime Kuma 的设计哲学,为用户带来流畅且直观的操作体验。
三、本次实践介绍
3.1 本次实践简介
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云华为云Flexus云服务器X实例,使用的操作系统为openEuler 22.03 LTS;
3.本次实践在Docker环境下部署Docker Compose管理工具Dockge。
3.2 本次环境规划
服务器类别 | 公共镜像选择 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
华为云Flexus云服务器X实例 | openEuler | 192.168.0.169 | 26.1.3 | openEuler 22.03 LTS |
四、远程连接华为云Flexus云服务器X实例
4.1 购买Flexus云服务器X实例
进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。
- 可参考以下基础配置,进行购买:
1.计费模式:包年/包月,这里选择此模式;
2.区域:华北—北京四,可用区:随机即可;
3.实例规格:关闭性能模式,选择自定义,4vCPUs | 12GiB;
4.镜像:公共镜像,Huawei Cloud EulerOS,版本,Huawei Cloud EulerOS 2.0 Standard 64 bit(10GiB);
5.应用加速:这里选择不加速;
6.存储:系统盘,通用型SSD100G;
7.网络:选择默认即可;
8.安全组:选择默认即可;
9.弹性公网IP:选择“现在购买”,全动态BGP,带宽3Mbit/s;
10.云服务器名称:可自定义设置,这里选择默认的名称;
11.登录凭证:自定义设置密码;
12.云备份:暂不购买;
其余配置默认即可。
- 确认配置及购买
在确认配置页面,检查Flexus云服务器X实例的各项配置是否正确。检查完毕后,点击“立即购买”。付款完毕后,华为云Flexus云服务器X实例购买成功。
4.2 查看Flexus云服务器X实例状态
进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。
4.3 使用Xshell远程连接
- 复制Flexus云服务器X实例的弹性公网IP地址
- 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。
五、检查Flexus云服务器X实例系统环境
5.1 检查操作系统版本
检查Flexus云服务器X实例的操作系统版本,本次实践选择的版本为
openEuler 22.03 LTS
[root@flexusx-51a1 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
5.2 检查内核版本
检查当前操作系统的内核版本,当前内核版本为
5.10.0-60.109.0.136.oe2203.x86_64
。
[root@flexusx-51a1 ~]# uname -r
5.10.0-60.109.0.136.oe2203.x86_64
5.3 检查Docker版本
部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为
26.1.3
。
[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb
5.4 检查Docker服务状态
检查Docker服务状态,确保Docker服务正常。
[root@flexusx-51a1 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2024-09-04 21:23:44 CST; 15min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 10018 (dockerd)
Tasks: 10
Memory: 196.3M
CGroup: /system.slice/docker.service
└─ 10018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
5.5 检查Docker compose版本
检查docker compose版本,当前默认安装版本为v2.27.0`。
[root@flexusx-51a1 ~]# docker compose version
Docker Compose version v2.27.0
六、部署Dockge应用
6.1 下载Dockge镜像
执行以下命令,拉取Dockge镜像
ouislam/dockge:1
。
[root@flexusx-51a1 ~]# docker pull louislam/dockge:1
1: Pulling from louislam/dockge
360eba32fa65: Pull complete
24f632c8bcc8: Pull complete
79a793b37a27: Pull complete
e03d23b55cf6: Pull complete
e65223f9c481: Pull complete
e3dfbea82362: Pull complete
5e41c98e67b8: Pull complete
706231bbe3a2: Pull complete
d67f67e4298f: Pull complete
e0fcbd0396df: Pull complete
f2dd62fb3870: Pull complete
Digest: sha256:ec889251baff476366783bc4a092aaa08c601f377537a0f30fb922754edcd9b7
Status: Downloaded newer image for louislam/dockge:1
docker.io/louislam/dockge:1
6.2 创建部署目录
- 创建项目部署目录
/data/dockge/
。
mkdir -p /data/dockge/{data,stacks} && cd /data/dockge/
6.3 编辑docker-compose.yaml文件
本次使用docker compose方式部署,需要新建及编辑docker-compose.yaml文件。在部署文件中,可以自定义修改宿主机映射端口等信息,注意防止端口冲突。
vim docker-compose.yaml
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
# Host Port : Container Port
- 6001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/dockge/data:/app/data
# If you want to use private registries, you need to share the auth file with Dockge:
# - /root/.docker/:/root/.docker
# Stacks Directory
# ⚠️ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
# ⚠️ 1. FULL path only. No relative path (MUST)
# ⚠️ 2. Left Stacks Path === Right Stacks Path (MUST)
- /data/dockge/stacks:/opt/stacks
environment:
# Tell Dockge where is your stacks directory
- DOCKGE_STACKS_DIR=/opt/stacks
6.4 创建Dockge容器
执行以下命令,快速创建Dockge容器。
root@flexusx-51a1 dockge]# docker compose up -d
[+] Running 2/2
? Network dockge_default Created 0.0s
? Container dockge-dockge-1 Started 0.2s
6.5 查看Dockge容器状态
检查Dockge容器状态,确保Dockge容器正常启动。
[root@flexusx-51a1 dockge]# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
dockge-dockge-1 louislam/dockge:1 "/usr/bin/dumb-init …" dockge 42 seconds ago Up 41 seconds (health: starting) 0.0.0.0:6001->5001/tcp, :::6001->5001/tcp
6.6 查看Dockge容器日志
检查Dockge容器日志,确保Dockge服务正常运行。
[root@flexusx-51a1 dockge]# docker compose logs
dockge-1 | 2024-09-14T13:50:46Z [SERVER] INFO: Welcome to dockge!
dockge-1 | 2024-09-14T13:50:46Z [SERVER] INFO: NODE_ENV: production
dockge-1 | 2024-09-14T13:50:46Z [SERVER] INFO: Server Type: HTTP
dockge-1 | 2024-09-14T13:50:46Z [SERVER] INFO: Data Dir: ./data/
dockge-1 | 2024-09-14T13:50:46Z [DB] WARN: ENOENT: no such file or directory, open 'data/db-config.json'
dockge-1 | 2024-09-14T13:50:46Z [DB] INFO: Database Type: sqlite
dockge-1 | 2024-09-14T13:50:46Z [SERVER] INFO: Connected to the database
dockge-1 | 2024-09-14T13:50:46Z [SERVER] INFO: JWT secret is not found, generate one.
dockge-1 | 2024-09-14T13:50:47Z [SERVER] INFO: Stored JWT secret into database
dockge-1 | 2024-09-14T13:50:47Z [SERVER] INFO: No user, need setup
dockge-1 | 2024-09-14T13:50:47Z [SERVER] INFO: Listening on 5001
6.7 查看资源使用情况
在检查了Dockge的资源占用情况后,我们发现该容器的实际资源消耗非常低。作为一款 Docker Compose 管理工具,Dockge 不仅高效地节省了系统资源,还极大地简化了容器应用的管理工作。
docker statsdockge-dockge-1
七、访问前准备工作
7.1 关闭防火墙与selinux
- 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
- 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
7.2 Flexus云服务器X实例安全组配置
进入Flexus云服务器X实例控制台,进行安全组规则配置。在安全组入方向规则上,放行6001端口。
八、访问Dockge服务
8.1 访问Dockge初始页
浏览器访问地址:http://弹性公网IP地址:6001,将IP替换为自己服务器IP地址。浏览器打开后,进入Dockge账号注册页。
8.2 创建管理账号
根据如下图所示,可自定义创建管理账号。
8.3 访问Dockge首页
创建管理员账号完毕后,自动跳转到Dockge首页。
九、创建compose应用
9.1 创建测试应用
创建Nginx的宿主机挂载目录
/data/nginx/html
,编辑网页测试内容。
mkdir -p /data/nginx/html
echo "hello" > /data/nginx/html/index.html
在Dockge页面中,点击“+Compose”选项,进入容器部署页面。
填写本次堆栈名称,编辑docker-compose.yaml文件,内容如下所示:
version: '3'
services:
nginx-web:
image: nginx:latest
ports:
- "6002:80"
volumes:
- /data/nginx/html:/usr/share/nginx/html
restart: always
点击“部署”选项,开始创建该堆栈。
9.2 查看容器组状态
在 Dockge 的主页上,选择刚刚创建的 “myweb” 堆栈,可以看到该容器组正在正常运行。
9.3 访问测试Nginx服务
进入Flexus云服务器X实例控制台,进行安全组规则配置。在安全组入方向规则上,放行6002端口。
浏览器访问地址:http://弹性公网IP地址:6002,将IP替换为自己服务器IP地址。浏览器打开后,可以看到Nginx网站内容。
十、管理现有堆栈方法
10.1 停止当前堆栈
查看当前宿主机上的所有运行容器,可以看到之前部署的servas 自托管书签工具。
[root@flexusx-51a1 stacks]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52bbf75d3c01 nginx:latest "/docker-entrypoint.…" 23 minutes ago Up 23 minutes 0.0.0.0:6002->80/tcp, :::6002->80/tcp myweb-nginx-web-1
91719adb4884 louislam/dockge:1 "/usr/bin/dumb-init …" About an hour ago Up About an hour (healthy) 0.0.0.0:6001->5001/tcp, :::6001->5001/tcp dockge-dockge-1
0663af7e82d9 beromir/servas "/docker-entrypoint.…" 2 days ago Up 2 days 9000/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp servas
进入到该应用的部署目录,停止该容器。
docker compose down
10.2 复制docker-compose.yaml文件
将部署目录下的所有文件复制到
/data/dockge/stacks/servas
目录,包括docker-compose,yaml文件
和.env
环境变量文件。
cp -a ./ /data/dockge/stacks/servas
10.3 扫描堆栈文件夹
点击右上角的账号图标,选择“扫描堆栈文件夹”。
10.4 重新启动容器
在Dockge主页,选择刚才扫描到的servas堆栈,点击停止容器后,在重新启动容器即可。
可以看到容器都正常运行中,可以通过Dockge来管理所有docker compose启动的容器。
十一、使用体验与总结
通过在华为云Flexus云服务器X实例上部署Dockge,我们不仅充分利用了其作为新一代柔性算力云服务器的强大性能与智能负载感知能力,还借助Dockge精美且易用的界面实现了对Docker容器应用的高效管理。Dockge提供的全生命周期管理功能,包括创建、编辑、启动、停止、重启和删除Docker配置等选项,使得在华为云Flexus云服务器X实例上管理复杂的容器部署变得前所未有的简便。这一组合不仅提升了开发效率,还彰显了华为云Flexus云服务器X实例在满足中小企业与开发者需求方面的卓越表现。
趁着华为云828 B2B企业节的大好时机,探索Flexus X实例带来的超值优惠,体验技术与创新的无缝融合。无论是高性能计算还是智能监控,每一处细节都体现了华为云对卓越品质的不懈追求。加入华为云,这不仅意味着技术上的跃升,更是迈向未来的一大步。让我们共同携手,在云端开辟新的辉煌篇章!