Как создать изолированную "среду" в Ubuntu?

51
7

Есть ли способ создать изолированную среду в Ubuntu 14.04? У меня установлено нестабильное приложение, и иногда оно не работает, я не знаю, почему. Итак, я пытаюсь создать изолированную среду, так что установленные мной зависимости будут доступны только в этой среде (что-то вроде виртуальной среды python).

Программа должна устанавливать эти зависимости: libc6, libstdС++ 6, imagemagick, perl, libgl1-mesa- glx и libglu1-mesa

Надеюсь, вы поняли мой вопрос. Спасибо!

спросил(а) 2018-06-28T22:42:00+03:00 1 год, 8 месяцев назад
1
Решение
51

Вы можете использовать Docker для создания изолированной среды, подобной виртуальной машине. У вас будет демон Docker, запущенный на вашей машине разработки (доступный на Mac, Windows и Linux). Затем вы создаете Dockerfile который начинается с базового образа Ubuntu 14.04. Затем вы можете использовать синтаксис 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 с помощью команды build:

docker build -t app .

Затем запустите его (пусть он выставляет порт 8080):

docker run -p 8080:8080 app

Теперь ваше приложение будет доступно на localhost:8080 на вашей машине разработки, но оно будет работать в изолированном контейнере Ubuntu.

ответил(а) 2018-06-28T23:12:00+03:00 1 год, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема