如何使用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中。
- 在Packer脚本中更改文件(使用sed)会使文件保持不变
- Docker中运算符$()是什么意思?
- 如何从另一个容器通过172.17.42.1:53:53/udp(docker0)的暴露端口访问容器(SkyDns)? Docker 1.7.1,Centos 7
- 使用Bitbucket泊坞窗图像
- 如何使用docker-compose创buildLEMP堆栈?
- 在EC2上的Docker,dockerfile中的RUN命令不能读取环境variables
- AWS容器服务:设置max_map_count
- Docker swarm缩小任务与会话:停止维护每个服务的任务数量
- AWS ec2 + Jenkins掌握Docker Swarm代理