Tag: dockerbuild设

在构build过程中将文件从容器复制到主机

在docker build命令中,如何将文件从Docker容器复制到主机? 作为为我的应用程序构buildDocker镜像的一部分,我在里面运行了一些testing,我想将testing运行的输出复制到主机(这是一个持续集成服务器)来做一些报告。

防止docker在更改代码后从头开始构build映像

docker工人新手,试图在docker集装箱中发展; 我有一个问题,每次我做一个代码的单行更改,并尝试重新运行容器,docker将从头开始重build图像,这需要很长的时间; 我应该如何正确设置项目,以便充分利用caching ? 很确定,无需重新安装所有的apt-get和pip install (每当我对源代码进行一些修改的时候,我正在用python开发)。 任何人都有任何想法我想念。 感谢任何帮助。 我目前的docker文件: FROM tiangolo/uwsgi-nginx-flask:python3.6 # Copy the current directory contents into the container at /app ADD ./app /app # Run python's package manager and install the flask package RUN apt-get update -y \ && apt-get -y install default-jre \ && apt-get install -y \ build-essential \ gfortran […]

docker工人:在一个单一的运行命令中创build和删除的密码是否可以从生成的图像中恢复?

我想在Docker构build过程中使用一些密钥。 所以我有这个想法将这些键作为构build参数注入到构build过程中。 这应该是安全的。 官方文件指出 : 而且,这些值不会像ENV值一样保留在中间或最终图像中。 这里是一个Dockerfile的例子: FROM ubuntu:latest ARG key … RUN echo $key > /tmp/key && doSomethingWithKey && rm /tmp/key … 正如你所看到的,有一点我需要将这个键粘贴到一个文件。 为了确保这个键不会被“烘焙”到最终的图像,我立即删除键。 这里是构build命令: $ docker build –build-arg key="secret" . 现在我的问题是:这是安全的还是密钥被“存储”在最终的形象?

在docker run命令中提到–net = host时,Docker容器不公开端口

我在CentOS docker主机上有一个CentOS docker容器。 当我使用这个命令运行docker run -d –net=host -p 8777:8777 ceilometer:1.x image docker run -d –net=host -p 8777:8777 ceilometer:1.x container获取主机的IP但没有分配端口。 如果我运行相同的命令没有“–net =主机” docker run -d -p 8777:8777 ceilometer:1.xdocker揭露端口,但具有不同的IP。 docker版本是1.10.1。 我希望docker容器具有与暴露端口的主机相同的IP。 我也在Dockerfile提到EXPOSE 8777但在docker docker run命令中提到“–net = host”时没有用。

docker使用从registry的以前的构buildcaching构build

我正在configuration一个竹子构build计划来构builddocker镜像。 使用AWS ECS作为registry。 builddevise划是这样的; 拉最新的标签 docker pull xxx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest 用最新的标签build立图像 docker build -t myimage:latest . 标记图像(ECS必需) docker tag -f myimage:latest xxx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest 将图像推送到registry docker push xx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest 由于构build任务每次都在不同的新build构build引擎/服务器上运行,因此它没有本地caching​​。 当我不改变Dockerfile的任何东西,并再次执行(在另一个服务器),我期望docker使用本地caching(来自docker拉),不会再执行每一行。 但它试图每次都build立图像。 我也期待,当我改变文件底部的东西,它会使用caching,只执行最新的行,但我不知道这一点。 我是否知道错了什么或者有什么意见?

如何在没有docker的情况下构builddocker镜像?

有没有一个轻量级的方式,我可以在一个容器内build立一个docker图像,而无需工作的docker机。 这是我想要做的: $ docker run -it –rm docker:latest / # mkdir test / # touch test/Dockerfile / # docker build test Cannot connect to the Docker daemon. Is the docker daemon running on this host? 假设我有一个有效的Dockerfile,有没有什么办法可以从这样的容器内创build一个docker图像?