
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是一个Docker化的通用工作空间,是完全隔离在Docker容器内的开发环境。它可以在任何地方运行,支持启动/停止、迁移到其他机器、归档为文件或恢复、推送到Docker仓库、在云服务器上启动。工作空间包含浏览器版的Visual Studio Code(Eclipse Theia)及多种浏览器工具,方便在容器内进行开发工作。
!https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/workspace-in-docker/img/wid-collage.png
注意:这是
codeserver-workspace的替代工作空间,具备后者的所有功能,仅Visual Studio Code的实现不同。
工作空间是完全自包含且隔离的开发环境,适用于以下场景:
shdocker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/workspace-in-docker
工作空间本质上是Docker容器,管理工作空间只需使用Docker命令。
基本启动命令
shdocker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/workspace-in-docker
建议以守护进程模式运行工作空间
启动后,打开 http://localhost:8020 访问工作空间UI,从这里可以打开所有工作空间工具。
有多种方式使用工作空间终端:
!https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/base-workspace/img/base-workspace-terminal.gif
浏览器终端始终以启动工作空间的用户身份运行,默认是非root用户"abc"
从本地终端进入运行的工作空间容器:
shdocker exec -it space-1 /bin/zsh
若不使用z-shell:
shdocker exec -it space-1 /bin/bash
以root用户身份进入:
shdocker exec -it --user=root space-1 /bin/zsh
在工作空间内执行以下命令查看当前用户:
whoami
每个工作空间需要一系列端口。若一个工作空间正在运行,端口8020-8035将被占用。工作空间本身使用9个端口(8020-8028),建议映射额外端口以备将来使用。
要同时运行多个工作空间,需使用不同的端口范围,例如:
shdocker run --name space-2 -d -p 8040-8055:8020-8035 -e ENTRY_PORT=8040 alnoda/workspace-in-docker
需设置环境变量ENTRY_PORT,其值应等于新端口范围的第一个端口,工作空间UI使用此变量重定向到正确的应用地址。
工作空间启动时映射了端口范围-p 8020-8035,因为包含多个带浏览器UI的应用:
| 端口 | 应用 |
|---|---|
| 8020 | 工作空间UI |
| 8021 | Filebrowser |
| 8022 | Static file server |
| 8023 | Cronicle |
| 8024 | Ungit |
| 8025 | VS-Code (Theia) |
| 8026 | Terminal |
| 8027 | Midnight Commander |
| 8028 | Htop |
无需记住这些端口,通过工作空间UI(localhost:8020)可打开所有应用。
!https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/workspace-in-docker/img/wid-ui.png
端口范围内的其余端口可用于公开可选应用或将来安装的应用。若需公开更多应用,可添加额外端口映射:
shdocker run --name space-1 -d -p 8020-8035:8020-8035 -p 8080:8080 alnoda/workspace-in-docker
可添加多个端口映射:
shdocker run --name space-1 -d -p 8020-8035:8020-8035 -p 8080:8080 -p 443:443 alnoda/workspace-in-docker
可直接从工作空间(使用工作空间终端)使用Docker:
shdocker run --name space-1 -d -p 8020-8035:8020-8035 -v /var/run/docker.sock:/var/run/docker.sock alnoda/workspace-in-docker
要使用docker in docker,需以root用户身份进入工作空间容器:
shdocker exec -it --user=root space-1 /bin/zsh
非安全远程工作空间
在远程服务器上运行工作空间只需3步:
shdocker run --name space-1 -d -p 8020-8035:8020-8035 -e WRK_HOST="<远程服务器IP>" alnoda/workspace-in-docker
运行远程工作空间时,需添加环境变量
-e WRK_HOST="<远程服务器IP>",工作空间UI需要此变量正确重定向应用地址。
在浏览器中打开 <远程服务器IP>:8020 访问工作空间。
若需要docker in docker:
shdocker run --name space-1 -d -p 8020-8035:8020-8035 -e WRK_HOST="<远程服务器IP>" -v /var/run/docker.sock:/var/run/docker.sock alnoda/workspace-in-docker
安全远程工作空间
工作空间包含工具,可生成在云端安全运行工作空间所需的一切(带身份验证和TLS)。
在本地启动工作空间,打开终端,使用工具/home/abc/utils/remote.py生成带TLS证书的docker-compose项目:
python /home/abc/utils/remote.py --workspace="workspace-in-docker" --port="8020" --host="68.183.69.198" --user="user1" --password="pass1"
需指定正确的主机(要运行工作空间的服务器IP)以及自定义的用户名和密码。
命令执行后,会创建文件夹/home/abc/utils/remote,使用Filebrowser将其下载到本地环境,然后复制到远程服务器。SSH到服务器,进入该目录并执行:
shdocker-compose up -d
工作空间将在远程服务器上安全运行,使用自签名TLS证书进行加密HTTPS通信,并添加身份验证。
浏览器会显示自签名证书警告,接受风险后,将出现身份验证窗口,输入设置的用户名和密码。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务