如何在 Ubuntu 中创建一个孤立的 "environment"?

How to create a isolated "environment" in Ubuntu?

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

该程序需要安装这些依赖项:libc6libstdc++6、 imagemagickperllibgl1-mesa-glxlibglu1-mesa

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

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

假设您有一个基本的 java 应用程序并且您在 /app 目录中:

/app
|
├── /bin
|   └── app.jar
|
├── /src
|   └── app.java
|
└── Dockerfile

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

# Use the Ubuntu 14.04 base image
FROM ubuntu:14.04

# Install dependencies 
# (assuming they are available via apt-get)

# <install Java here>

RUN apt-get install -y \
libc6                  \
libstdc++6             \
imagemagick            \
perl                   \
libgl1-mesa-glx        \ 
libglu1-mesa       

# Copy code (or binaries) into the container
COPY app/bin/app.jar /app.jar

# Expose port 8080
EXPOSE 8080

# Run the application
CMD java -jar app.jar

然后您需要使用构建命令 build 来自 Dockerfile 的图像:

docker build -t app .

然后运行它(假设它暴露了8080端口):

docker run -p 8080:8080 app

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