如何使用Docker镜像打包文件

我有一个应用程序需要一些基于Docker的应用程序工作的主机上的二进制文件。 我可以使用dockerregistry发送图像,但是如何将这些二进制文件发送到主机? 创造deb / rpm似乎是一种select,但这将违背docker平台独立哲学。

如果您的映像基于包pipe理器的映像,则可以使用包pipe理器来安装所需的二进制文件,例如

RUN apt-get update && apt-get install -y required-package 

或者,你可以从互联网上下载静态链接的二进制文件,并提取它们,例如

 RUN curl -s -L https://example.com/some-bin.tar.gz | tar -C /opt -zx 

如果二进制文件是作为构build过程的一部分创build的,那么您需要复制它们

 COPY build/target/bin/* /usr/local/bin/ 

如果你需要在主机上的docker镜像之外,你可以做的是这个。

使用ADD或COPY将它们添加到Dockerfile

还有一个安装脚本,它调用cp -f src dest然后在容器中绑定一个安装目录从主机到目的地。

像下面的例子:

例如Dockerfile

 FROM ubuntu:16.04 COPY file1 /src COPY file2 /src COPY install /src CMD install 

build立它:

docker build -t installer .

安装脚本:

 #/bin/bash cp -f /src /dist 

安装:

 docker run -v /opt/bin:/dist 

将导致file1和file2结束在主机上的/ opt / bin中。