Как поделиться apt-пакетом между контейнерами Docker - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу использовать Docker, чтобы помочь мне оставаться организованным при разработке и развертывании пакетов / систем с использованием ROS (операционной системы роботов).

Я хочу иметь несколько контейнеров / образов для различных частей программного обеспечения иодно изображение, которое имеет все зависимости ROS.Как я могу иметь один контейнер, использующий apt-packaged из моего главного контейнера зависимостей?

Например, у меня могут быть следующие контейнеры:

  • MyRosBase: sudo apt-get install всеМне нужны зависимости ros (их много).Установите некоторые другие переменные окружения и различные элементы конфигурации.
  • MyMoveApplication: используйте зависимости от MyRosBase и установите любые дополнительные и особые зависимости для этого образа.Затем запустите программное обеспечение, которое перемещает руку робота.
  • MySimulateApplication: используйте зависимости от MyRosBase и установите любые дополнительные и особые зависимости для этого образа.Затем запустите программное обеспечение, имитирующее манипулятор робота.

Как использовать пакеты apt из контейнера в другом контейнере, не переустанавливая их каждый раз в каждом контейнере?

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете создавать свои собственные изображения, которые будут служить вам базовыми изображениями, используя Dockerfiles.

Пример:

mkdir ROSDocker
cd ROSDocker
vim Dockerfile-base

FROM debian:stretch-slim
RUN apt-get install dep1 dep2 depn

sudo docker build -t yourusername/ros-base:0.1 -f Dockerfile-base . 

После завершения сборки вы можете создать еще один файл Docker из этого базового образа..

FROM yourusername/ros-base:0.1
RUN apt-get install dep1 dep2 depn

Теперь создайте вторые образы:

sudo docker build -t yourusername/mymoveApplication:0.1 -f Dockerfile-base .

Теперь у вас есть образ для вашего приложения перемещения, каждый контейнер, который вы запускаете из этого образа, будет иметь все установленные зависимости.

У вас может быть хранилище образов Docker для управления встроенными изображениями и обмена ими между людьми и средами.

Этот пример может быть расширен несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...