如何在 Ubuntu 中创建一个隔离的“环境”?

Jul*_*lio 5 ubuntu ubuntu-14.04

有没有办法在 Ubuntu 14.04 中创建隔离环境?我安装了一个不稳定的应用程序,有时它不起作用,我不知道为什么。因此,我正在尝试创建一个隔离环境,以使我安装的依赖项仅在此环境中可用(类似于 python 虚拟环境)。

该程序需要安装这些依赖项:libc6、libstdc++6 、 imagemagick、perl、libgl1-mesa-glx和libglu1-mesa

我希望你已经理解了我的问题。谢谢!

小智 5

您可以使用Docker创建类似于虚拟机的隔离环境。您可以让 Docker 守护进程在您的开发计算机上运行(可在 Mac、Windows 和 Linux 上使用)。然后您创建一个Dockerfile以 Ubuntu 14.04 基础映像启动的映像。然后,您可以使用 Docker 语法编写命令来安装依赖项,并将代码复制到 Docker 容器(隔离环境的实例)中。

\n\n

假设您有一个基本的 java 应用程序,并且位于以下/app目录中:

\n\n
/app\n|\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /bin\n|   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 app.jar\n|\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 /src\n|   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 app.java\n|\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Dockerfile\n
Run Code Online (Sandbox Code Playgroud)\n\n

您Dockerfile将如下所示来描述您的隔离环境:

\n\n
# Use the Ubuntu 14.04 base image\nFROM ubuntu:14.04\n\n# Install dependencies \n# (assuming they are available via apt-get)\n\n# <install Java here>\n\nRUN apt-get install -y \\\nlibc6                  \\\nlibstdc++6             \\\nimagemagick            \\\nperl                   \\\nlibgl1-mesa-glx        \\ \nlibglu1-mesa       \n\n# Copy code (or binaries) into the container\nCOPY app/bin/app.jar /app.jar\n\n# Expose port 8080\nEXPOSE 8080\n\n# Run the application\nCMD java -jar app.jar\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,您需要使用构建命令build获取图像:Dockerfile

\n\n
docker build -t app .\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后运行它(假设它公开端口 8080):

\n\n
docker run -p 8080:8080 app\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在您的应用程序将在您的开发计算机上可用localhost:8080,但它将在隔离的 Ubuntu 容器中运行。

\n