从 KooLabs 到 AI 开发者空间:一次 Docker 上手实验与静态网页发布全流程记录
写在前面
今天在华为云 KooLabs 完成了实验「轻松快速上手 Docker」,又在「AI 开发者空间」里把一个 Hello World 静态网页从生成到发布走了一遍。本文按实际操作顺序整理:第一部分是 Docker 常用操作,第二部分简单介绍 AI 开发者空间里的网页发布流程。中间还有一个登录方面的小坑,一并记下来,希望能帮后来的同学少走弯路。
实验地址:https://edu.huaweicloud.com/lab/experiment-detail_2417
一、开始实验前的一个坑:临时账号要用无痕窗口登录
KooLabs 的实验会提供一个临时账号,用来登录实验配套的华为云控制台。如果直接在当前浏览器窗口登录,临时账号的登录态会把自己主账号的登录态顶掉,回到实验页面或其他控制台页面时就会出现身份混乱、需要重新登录的情况。
建议做法:
- 在普通窗口保持主账号登录,用来浏览实验手册、操作 KooLabs 页面;
- 另开一个浏览器无痕/隐私窗口,在其中用实验提供的临时账号登录控制台;
- 两个窗口的 Cookie 互不干扰,可以并排对照手册操作。
这个问题本身不复杂,但第一次遇到时容易误以为是实验环境出了问题,提前知道能省不少时间。
二、Docker 上手:从安装到构建镜像
实验在云主机上完成,下面按操作顺序整理命令。需要说明的是,不同 Linux 发行版的安装方式略有差异,以实验手册给出的为准,这里列出常见写法。
1. 安装并启动 Docker
以使用 yum 的发行版为例:
# 安装 Docker
sudo yum install -y docker
# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 确认安装成功
docker version
docker info
如果是 Debian/Ubuntu 系列,可以用 sudo apt-get install -y docker.io 代替。docker version 能同时输出 Client 和 Server 信息,说明守护进程已经正常运行。
2. 拉取镜像
# 拉取官方 nginx 镜像(不写标签默认为 latest)
docker pull nginx
# 查看本地已有镜像
docker images
建议在正式场景中显式指定标签,例如 nginx:1.25,避免 latest 变化导致环境不一致。
3. 运行容器
# 后台运行一个 nginx 容器,宿主机 8080 端口映射到容器 80 端口
docker run -d --name my-nginx -p 8080:80 nginx
# 在主机上验证
curl http://localhost:8080
几个常用参数:
-d:后台运行;--name:指定容器名,后续操作可以直接用名字代替容器 ID;-p 宿主机端口:容器端口:端口映射。若要从公网访问,还需要在云主机安全组中放行对应端口。
4. 查看、进入容器与查看日志
# 查看正在运行的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
# 查看容器日志
docker logs my-nginx
# 进入容器内部执行命令
docker exec -it my-nginx /bin/bash
# 退出容器终端
exit
docker exec 进入的是已经在运行的容器,执行 exit 只会退出这个终端会话,不会停止容器。
5. 停止与删除容器
# 停止容器
docker stop my-nginx
# 重新启动已停止的容器
docker start my-nginx
# 删除容器(需先停止)
docker stop my-nginx
docker rm my-nginx
# 删除镜像(需没有容器在使用它)
docker rmi nginx
删除顺序是"先停容器、再删容器、最后删镜像"。如果镜像仍被某个容器(哪怕是已停止的)引用,docker rmi 会报错。
6. 用 Dockerfile 构建一个简单镜像
新建目录,准备一个首页文件和 Dockerfile:
mkdir -p ~/myweb && cd ~/myweb
echo '<h1>Hello Docker</h1>' > index.html
Dockerfile 内容:
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80
构建并运行:
# 构建镜像,-t 指定名称和标签,最后的 . 表示构建上下文为当前目录
docker build -t myweb:v1 .
# 运行自定义镜像
docker run -d --name myweb -p 8081:80 myweb:v1
# 验证
curl http://localhost:8081
返回 <h1>Hello Docker</h1> 即说明镜像构建成功。这个例子虽然简单,但覆盖了 Dockerfile 最核心的三件事:选择基础镜像(FROM)、加入自己的文件(COPY)、声明端口(EXPOSE)。
7. 实验结束前清理
docker stop myweb
docker rm myweb
docker rmi myweb:v1
养成清理习惯,在自己的服务器上可以避免无用容器和镜像长期占用磁盘。
三、AI 开发者空间:用 AI Shell 生成并发布一个静态网页
做完 Docker 实验后,我又体验了华为云「AI 开发者空间」。它提供免费 6 小时的体验云主机,适合快速试验一些小想法。这次的流程如下:
- 生成网页:在云主机中打开 AI Shell 智能体,用自然语言描述需求,让它生成一个 Hello World 静态网页。
- 对外暴露:通过开发隧道(devbridge)把本地服务暴露出去,获得一个可以从外部访问的地址,用浏览器验证页面效果。
- 推送代码:把网页代码推送到 GitCode 仓库,常规 Git 操作即可:
git init
git add .
git commit -m "init: hello world page"
git remote add origin <你的 GitCode 仓库地址>
git push -u origin master
(分支名以仓库实际默认分支为准,可能是 master 或 main。)
- 发布作品:最后把作品发布到开发者作品展览馆。
整个过程的体会是:AI Shell 负责"写",开发隧道负责"看",GitCode 负责"存",展览馆负责"展示",从想法到可访问的作品串成了一条完整链路。体验云主机有 6 小时时长限制,建议提前想好要做什么,并及时把代码推送到仓库,避免时间到期后丢失成果。
四、小结
- KooLabs 实验的临时账号请用无痕窗口登录,避免顶掉主账号登录态;
- Docker 入门的核心命令就是
pull / run / ps / logs / exec / stop / rm / rmi / build这一组,配合一个最简单的 Dockerfile 就能理解镜像与容器的关系; - AI 开发者空间适合快速验证想法,"生成—暴露—推送—发布"的流程很顺畅,注意体验时长,及时保存代码。
对 Docker 还不熟悉的同学,可以直接去做一遍这个实验,跟着命令敲完,比单纯看文档印象深刻得多。
- 点赞
- 收藏
- 关注作者
评论(0)