![为了安全起见,我可以在 Docker 中安装 Visual Studio Code 吗?](https://linux22.com/image/927264/%E4%B8%BA%E4%BA%86%E5%AE%89%E5%85%A8%E8%B5%B7%E8%A7%81%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%20Docker%20%E4%B8%AD%E5%AE%89%E8%A3%85%20Visual%20Studio%20Code%20%E5%90%97%EF%BC%9F.png)
在 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
选项运行。