如何在Docker容器之间共享apt-package

时间:2018-09-21 15:58:55

标签: docker ros

我想使用docker帮助我保持组织结构,以使用ROS(机器人操作系统)开发和部署软件包/系统。

我想为各种软件提供多个容器/映像,并为单个映像提供所有ROS依赖项。如何让一个容器使用我的依赖项主容器中的apt-packaged?

例如,我可能有以下容器:

  • MyRosBase:sudo apt-get install我需要的所有ros依赖项(有很多)。设置其他一些环境变量和各种配置项。
  • MyMoveApplication:使用MyRosBase中的依赖项,并将任何其他特定的依赖项安装到此映像。然后运行可移动机器人手臂的软件。
  • MySimulateApplication:使用MyRosBase的依赖项,并将任何其他特定的依赖项安装到此映像。然后运行模拟机器人手臂的软件。

如何使用另一个容器中容器的apt软件包,而不必每次都在每个容器上重新安装它们?

1 个答案:

答案 0 :(得分:1)

您可以使用Dockerfile创建自己的映像作为基础映像。

示例:

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映像存储库,用于管理您构建的映像并在人与环境之间共享。

此示例可以扩展多次。