Tag: dockerbuild设

Docker构build标签库名称

可以通过docker build命令轻松构builddocker镜像。 我想知道的是在build立图像时你可以给的t标志。 例如: $ docker build -t ouruser/sinatra:v2 . 根据文档,t标志是用于标记和命名的目的。 名称是':'之前的部分,标签是之后的部分。 所以在我们的例子中,名字是ouruser / sinatra,标签是v2。 我认为这将是图像的名称和标签。 但显然,名称实际上是一些存储库名称? 为什么我认为这是? 那么,因为如果你之后会用命令列出图像: docker images 你会得到这样的列表: REPOSITORY TAG IMAGE ID CREATED SIZE ouruser/sinatra latest 5db5f8471261 11 hours ago 446.7 M 砰! 重大的冲击! 你以为你正在创build一个名称的图像,而是指定了一些存储库! 与此相关,我有一些问题: 这个存储库位于何处? 我可以在不创build存储库的情况下命名图像? 这个资源库在哪里以及如何使用,或者可以使用? 我在哪里可以find关于这个仓库的更多信息? 我只发现了这一点,并没有说实话: docker build docs 为什么使用由两部分组成的名称是常见的:somename / someothername? 感谢您的帮助!

如何build立一个相对较小的磁盘空间消耗大docker图像?

背景 我正在尝试从虚拟机上的Dockerfile构build一个docker镜像。 VM正在运行Redhat 7.1(内核3.10),Docker是1.10.2 Dockerfile有以下内容 FROM rhel MAINTAINER MyName<me@email.com> RUN #yum install wget and other tools (less than 500 MB) COPY entitlementfile /opt/entitlementfile RUN wget -O /opt/installer.bin https://installer.com/installer.bin \ && chmod +x /opt/* \ && /opt/installer.bin –quiet \ && rm -f /opt/*.bin USER admin 我的构build虚拟机有大约16G的可用空间 [root@xrh701 DockerImage]# df -h Filesystem Size Used Avail Use% Mounted […]

如何正确构build使用Dockerfile的弹簧启动泊坞窗图像?

我有以下的spring启动项目结构: pwd /Users/eugene/Documents/Dev/Java/workspace/Springboot-Receiver-API tree . ├── Dockerfile ├── pom.xml ├── src │ └── main │ ├── java │ │ └── com │ │ └── myconpany │ │ └── myproject │ │ └── data │ │ ├── Application.java │ │ ├── ConsumerThreadPool.java │ │ ├── ErpConsumer.java │ │ ├── configs │ │ │ ├── ConsumerConfigFactory.java │ […]

即使它在同一个目录下,Docker构build好像看不到requirements.txt

我正在build立一个网站,我使用Django和Gunicornbuild立了后端,我试图把所有东西打包在一个docker集装箱里。 我在Ubuntu 17.04 Zesty上使用17.05.0-ce edge。 由于某些原因,即使目录mysite具有Dockerfile ,Django应用程序, requirements.txt , start.sh ( 在github这里 ), ADD requirements.txt /app/src/requirements.txt build停在ADD requirements.txt /app/src/requirements.txt 。 # Dockerfile # FROM base image to build upon FROM phusion/baseimage # RUN install python and pip RUN apt-get update RUN apt-get install -y python python-pip python-dev # ADD requirements.txt and RUN pip to install […]

在Jenkins(在docker容器中)build立docker镜像

我使用docker集装箱的jenkins。 我想在Jenkinspipe道中构builddocker镜像,但是docker不存在于这个容器中(Jenkins)。 由Docker Compose部署的Jenkins容器,yml文件: version: "3.3" services: jenkins: image: jenkins:alpine ports: – 8085:8080 volumes: – ./FOR_JENKINS:/var/jenkins_home 我们可以在Jenkinspipe道中build立docker镜像吗? 我们可以用Docker部署一些docker容器,并使用一次来构builddocker图像吗? 或者是其他东西? 你怎么和他们做? 编辑: 谢谢@VonC,我查了你的资料,但是…“被拒绝的权限” Docker撰写文件: version: "3.3" services: jenkins: image: jenkins:alpine ports: – 8085:8080 volumes: – ./FOR_JENKINS:/var/jenkins_home # – /var/run/docker.sock:/var/run/docker.sock:rw – /var/run:/var/run:rw Jenkinsfile: pipeline { agent any stages { stage('Build') { steps { echo "Compiling…" sh "${tool […]

在Docker构build期间启动服务

我想在Docker构build期间启动一个服务。 我不需要这个服务在构build过程完成之后继续运行(或者我知道我可以使用CMD命令),但是我确实需要运行足够长的时间来执行第二个依赖于此服务的命令并运行。 更准确地说,我正在为ejabberd XMPP服务器编写一个Dockerfile,它也为这个服务器安装了一个模块。 我试图用ejabberdctl start启动ejabberd服务器,然后用ejabberdctl module_install实用程序安装模块,这取决于正在运行的节点。 它看起来像这样: RUN ejabberdctl start && ejabberdctl modules_update_specs && ejabberdctl module_install ejabberd_auth_http 现在我遇到了一个问题,我提出了两个可能的原因。 问题是我的版本不能从这一行开始工作,因为当第二个命令试图执行时节点closures了。 我得到以下错误,当您尝试使用ejabberdctl实用程序时,这是一个典型的错误,而不会实际启动节点: 失败的RPC连接到节点ejabberd @ localhost 命令'/ bin / sh -c ejabberdctl start && ejabberdctl modules_update_specs && ejabberdctl module_install ejabberd_auth_http'返回了一个非零的代码:3 这可能是因为服务的启动需要一些时间,比第二个命令执行所需要的时间要长,所以第二个命令会运行到正在启动的节点。 不知道这有多可能。 第二个原因可能是在构build过程中,依赖于init.d的服务的启动在Docker中不起作用。 我build立容器,直到导致问题的那一行,进入容器并手动执行命令,并且所有事情都按照它应该的那样工作。 所以总结一下,我想在构build期间启动ejabberd服务器,然后使用其控制工具来安装一些东西。 最后一个select是在没有运行服务器的情况下手动安装模块,但是我宁愿使用ejabberdctl控制工具来完成。

如何在构build过程中将凭据导入到Docker容器中

我想知道是否有一个关于如何在Docker docker build期间将凭证注入Docker容器的最佳实践。 在我的Dockerfile中,我需要获取需要基本身份validation的资源Web服务器,并且正在考虑如何将凭证放入容器而不对其进行硬编码。 一个.netrc文件怎么样,并使用curl –netrc … ? 但是安全呢? 我不喜欢将凭据与我的Dockerfile一起保存在源存储库中的想法。 有没有例如使用参数或环境variables注入凭据的任何方式? 有任何想法吗?

在构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" . 现在我的问题是:这是安全的还是密钥被“存储”在最终的形象?