云耀云服务器L实例是新一代的轻量应用云服务器,专为中小企业和开发者设计,提供便捷的开箱即用体验。该产品提供丰富且经过严格筛选的应用镜像,可一键部署应用,极大程度简化了客户在云端构建电商网站、Web应用、小程序、学习环境以及各类开发测试等任务的过程。
智能不卡顿:华为云擎天架构加持,软硬协同结合AI算法智能调度,为您提供优质性能。华为云全球存算一张网,数据传输时延比眨眼还短,满足游戏、音视频等低网络时延场景的高要求。
价优随心用:超高性价比,超低门槛,敞开随心用。多种实例规格,平衡性能与成本。技术升级优化用云成本,普惠更多初创企业和开发者。
上手更简单:多种镜像、资源组合一键下单。严选多款高品质镜像,经过华为云官方严格测试,覆盖七大场景,预置模板,快速搭建,安全可信。自动化编排,资源一键开通,业务分钟级上线。平滑学习曲线,向导式应用搭建,应用轻松启用。
管理更省心:拓扑、资源、镜像可视化管理,业务架构透明化管理。贴心服务状态提醒,资源续退一键式操作,实现极简管理。资源负载、安全,使用率实时监控,保障服务永远在线。可选配丰富的安全服务,包括丰富的备份、主机安全等服务,提供最高等级的安全防护。
Gogs是一款基于Go语言开发的自助Git服务,可以提供轻量级、易于使用的Git服务器。
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云耀云服务器L实例,使用的应用镜像为Portainer 2.18.4;
3.由于使用的应用镜像为Portainer,云服务器自动已部署好Docker环境;
4.在华为云云耀云服务器L实例上部署Gogs服务器。
服务器类别 | 应用镜像 | 内网IP地址 | Docker版本 | Portainer版本 | 操作系统版本 |
---|---|---|---|---|---|
云耀云服务器L实例 | Docker可视化Portainer | 192.168.0.168 | 24.0.4 | 2.18.4 | Ubuntu 22.04.1 LTS |
华为云耀云服务器L实例请提前购买好,这里由于之前已经购买,直接使用即可。点击进入云耀云服务器L实例管理页面,复制其弹性公网IP地址,后面远程连接以及外网访问都要用上。
在Xshell工具中,填写服务器弹性公网IP地址、账号密码信息,ssh连接远程服务器。
华为云耀云服务器L实例使用Portainer应用镜像时,使用的操作系统版本为Ubuntu 22.04.1 LTS。
root@hcss-ecs-f91c:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
检查Docker版本,当前版本为24.0.4。
root@hcss-ecs-f91c:~# docker -v
Docker version 24.0.4, build 3713ee1
检查Docker服务状态,确保Docker服务正常运行。
root@hcss-ecs-f91c:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-09-27 15:05:06 CST; 2 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1058 (dockerd)
Tasks: 75
Memory: 72.6M
CPU: 2min 17.783s
CGroup: /system.slice/docker.service
在docker hub拉取Gogs与Mysql镜像。
docker pull gogs/gogs:latest
docker pull mysql:5.7
创建挂载目录/data/gogs/{data,mysql}。
mkdir -p /data/gogs/{data,mysql}
对/data/gogs/{data,mysql}目录进行授权。
chmod -R 777 /data/gogs/
使用以下命令,创建Mysql容器。
docker run -d --name gogs-mysql --restart always -e MYSQL_ROOT_PASSWORD=gogs -e MYSQL_DATABASE=gogs -e MYSQL_USER=gogs -e MYSQL_PASSWORD=gogs -p 3306:3306 -v /data/gogs/mysql:/var/lib/mysql mysql:5.7
检查Mysql容器状态,确保Mysql容器正常启动。
root@hcss-ecs-f91c:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23b9dc78b17b mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp gogs-mysql
进入到Mysql容器内,给gogs用户授权。
docker exec -it gogs-mysql /bin/bash # 进入mysql容器内
mysql -uroot -p # 连接本地mysql数据库
给gogs用户进行授权。
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'%' IDENTIFIED BY 'gogs';
FLUSH PRIVILEGES;
执行以下命令,创建Gogs容器。
docker run -d --name=gogs --restart always -v /data/gogs/data:/data -p 10022:22 -p 3000:3000 --link=gogs-mysql:mysql gogs/gogs
检查Gogs容器状态,确保Gogs容器正常启动。
root@hcss-ecs-f91c:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d50d4e85bb34 gogs/gogs "/app/gogs/docker/st…" 20 seconds ago Up 19 seconds (health: starting) 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp, 0.0.0.0:10022->22/tcp, :::10022->22/tcp gogs
23b9dc78b17b mysql:5.7 "docker-entrypoint.s…" 39 minutes ago Up 39 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp gogs-mysql
检查Gogs容器运行日志,确保Gogs服务正常运行。
docker logs gogs
进入华为云云耀云服务器L实例的安全组管理页面,入方向放行10080与3000端口。
访问地址:http://弹性公网IP地址:3000/,进入到初始配置界面。
数据库设置:
数据库类型:Mysql;
数据库主机:127.0.0.1:3306;
数据库用户:gogs;
数据库密码:gogs;
数据库名称: gogs;
应用基本设置将应用 URL设置为http://弹性公网IP地址:3000/,其余默认即可。
创建管理员账号,自定义设置即可,点击“立即安装”。
用户设置——头像设置,上传头像后,点击“更新头像设置”,用户头像就会刷新。
选择创建仓库,进入仓库创建页面。
选择仓库名称,点击“创建仓库”。
在本地服务器,执行以下命令,将本地内容推送到Gogs服务器的新建仓库中。
mkdir /test && cd /test
echo "test01-aa" > myweb.sh
git init
git add myweb.sh
git commit -m "first commit by wangming -v1.0.0"
git remote add origin http://120.46.81.11:3000/jeven/myweb.git
git push -u origin master
查看新建仓库myweb状态,发现已经成功上传本地内容。