linuxserver/openvscode-serverOpenvscode-server 提供了一个 VS Code 版本,它在远程机器上运行服务器,并允许通过现代 Web 浏览器进行访问。该 Docker 镜像由 LinuxServer.io 团队维护,确保应用的定期更新、安全加固和跨平台支持。
该镜像利用 Docker 清单实现多平台支持。直接拉取 lscr.io/linuxserver/openvscode-server:latest 即可获取对应架构的正确镜像,也可通过标签指定特定架构。
| 架构 | 支持情况 | 标签格式 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| 标签 | 支持情况 | 描述 |
|---|---|---|
| latest | ✅ | 稳定版本 |
| insiders | ✅ | 内测版本(开发版) |
CONNECTION_TOKEN 或 CONNECTION_SECRET 环境变量,可通过 http://<您的IP>:3000/?tkn=supersecrettoken 访问 Web UI(将 supersecrettoken 替换为实际设置的值)http://<您的IP>:3000 访问 Web UI/config/.ssh 目录bashgit config --global user.name "用户名" git config --global user.email "***地址"
当通过 SWAG 反向代理时,OpenVSCode Server 内特定端口运行的自定义服务可通过 [***] 访问。需创建通配符 CNAME *.openvscode-server.domain.com 并确保 SWAG 证书覆盖这些子域。
以下提供 docker-compose 和 docker cli 两种部署方式。
[!NOTE] 除非标记为“可选”,否则所有参数均为必填项,必须提供值。
yaml--- services: openvscode-server: image: lscr.io/linuxserver/openvscode-server:latest container_name: openvscode-server environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - CONNECTION_TOKEN= #可选 - CONNECTION_SECRET= #可选 - SUDO_PASSWORD=password #可选 - SUDO_PASSWORD_HASH= #可选 volumes: - /path/to/openvscode-server/config:/config ports: - 3000:3000 restart: unless-stopped
bashdocker run -d \ --name=openvscode-server \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e CONNECTION_TOKEN= `#可选` \ -e CONNECTION_SECRET= `#可选` \ -e SUDO_PASSWORD=password `#可选` \ -e SUDO_PASSWORD_HASH= `#可选` \ -p 3000:3000 \ -v /path/to/openvscode-server/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/openvscode-server:latest
容器通过运行时参数进行配置,格式为 <外部>:<内部>。例如 -p 8080:80 表示将容器内 80 端口映射到主机 8080 端口。
| 参数 | 功能说明 |
|---|---|
-p 3000:3000 | Web UI 端口 |
-e PUID=1000 | 用户ID - 详见下文说明 |
-e PGID=1000 | 组ID - 详见下文说明 |
-e TZ=Etc/UTC | 指定时区,详见时区列表 |
-e CONNECTION_TOKEN= | 可选,Web UI 访问安全令牌(如 supersecrettoken) |
-e CONNECTION_SECRET= | 可选,容器内包含安全令牌的文件路径(如 /path/to/file),优先级高于 CONNECTION_TOKEN |
-e SUDO_PASSWORD=password | 可选,设置后用户在终端中拥有 sudo 权限,密码为此处指定值 |
-e SUDO_PASSWORD_HASH= | 可选,通过哈希值设置 sudo 密码(优先级高于 SUDO_PASSWORD),格式为 $类型$盐值$哈希值 |
-v /config | 包含所有相关配置文件 |
可通过特殊前缀 FILE__ 从文件设置任何环境变量。例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
这将根据 /run/secrets/mysecretvariable 文件内容设置环境变量 MYVAR。
所有镜像均支持通过可选参数 -e UMASK=022 覆盖容器内服务的默认 umask 设置。请注意,umask 是通过减法调整权限,而非直接设置权限。详情请参考umask 说明。
使用卷(-v 参数)时,主机与容器间可能出现权限问题。通过指定用户 PUID 和组 PGID 可避免此问题。确保主机上的卷目录归指定用户所有,权限问题将迎刃而解。
使用 id your_user 命令可获取当前用户的 PUID 和 PGID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
我们提供多种 Docker Mods 以扩展容器功能。上方徽章链接可访问此镜像专用模块及适用于所有 LinuxServer.io 镜像的通用模块列表。
bashdocker exec -it openvscode-server /bin/bash
bashdocker logs -f openvscode-server
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' openvscode-server
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/openvscode-server:latest
大多数镜像为静态版本,需通过更新镜像并重建容器来更新应用。以下是更新容器的说明:
bashdocker-compose pull
bashdocker-compose pull openvscode-server
bashdocker-compose up -d
bashdocker-compose up -d openvscode-server
bashdocker image prune
bashdocker pull lscr.io/linuxserver/openvscode-server:latest
bashdocker stop openvscode-server
bashdocker rm openvscode-server
(若正确映射主机目录,/config 文件夹及设置将被保留)
bashdocker image prune
[!TIP] 推荐使用 Diun 接收更新通知。不建议使用自动更新容器的工具。
如需修改镜像进行开发或自定义,可按以下步骤本地构建:
bashgit clone [***] cd docker-openvscode-server docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/openvscode-server:latest .
可使用 lscr.io/linuxserver/qemu-static 在 x86_64 硬件上构建 ARM 变体,反之亦然:
bashdocker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
注册后,可使用 -f Dockerfile.aarch64 指定架构对应的 Dockerfile。
/config/workspace 内容install-extension 工具以适配上游变更install-extension 工具供模块安装扩展.profile 和 .bashrcinsiders 标签manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务