为了安全起见,我可以在 Docker 中安装 Visual Studio Code 吗?

为了安全起见,我可以在 Docker 中安装 Visual Studio Code 吗?

在 Docker 容器中安装 Visual Studio Code 是否会比 snap 或 Flatpack 提供更好的隔离效果?

答案1

Code_OSS 应用图像

与其他应用程序不同,AppImage 无需安装即可使用,但需要标记为可执行文件才能运行。这是 Linux 的安全功能。

Visual Studio Code OSS 版本:

下载Code_OSS 应用图像并使用文件管理器或在终端中输入以下命令使其可执行:

chmod +x ./*.AppImage

然后双击文件管理器中的AppImage将其打开。

沙盒代码_OSS:

如果您想限制 Code_OSS 在您的系统上可以执行的操作,您可以在 Firejail 等沙盒中运行 AppImage。这完全是可选的,目前需要由用户配置。

在此处输入图片描述

答案2

作为普鲁莫已经声明该 docker 不是为此而设计的。如果你担心在沙箱,snaps 和 AppImages 会是更好的选择。

但是如果您仍然有兴趣在 Docker 容器内运行 Visual Studio Code,您可以按照以下步骤操作:

准备 Docker 容器

在一个空文件夹内创建一个新的 Dockerfile,例如“myimage”,并添加

FROM ubuntu:20.04
RUN apt update
RUN apt install -y gpg sudo
RUN echo "deb [arch=amd64] http://packages.microsoft.com/repos/vscode stable main" >> /etc/apt/sources.list.d/vscode.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB3E94ADBE1229CF
RUN apt update
RUN apt install --no-install-recommends -y code
RUN apt install --no-install-recommends -y libx11-xcb1
RUN apt install --no-install-recommends -y libxtst6
RUN apt install --no-install-recommends -y libasound2
CMD /usr/share/code/code --no-sandbox --unity-launch

构建容器:

sudo docker build -t myimage .

运行 Visual Studio Code:

使用以下方式运行容器:

sudo docker run --rm -ti --net=host -e DISPLAY=:0  myimage 

如果你得到

(code:1): Gtk-WARNING **: cannot open display: :0

跑步

xhost +SI:localuser:root

重试运行容器。

创建桌面条目(又称快捷方式)

由于 docker 需要sudo权限才能运行,因此您可以使用pkexec在桌面条目内。要创建快捷方式,请运行

nano ~/.local/share/applications/vscode-docker.desktop

并添加这些内容

[Desktop Entry]
Version=1.0
Name=VSCode Docker
Icon=code
Exec=bash -c 'pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/docker run --rm -t --net=host -e DISPLAY=:0 myimage'
Type=Application
Terminal=false

笔记:由于桌面入口使用pkexec,docker需要以非交互方式运行,即无i选项运行。

相关内容