Tag: 焦油

Dockerfile ADD tar.gz不会在具有Docker的Ubuntu VM上提取

我有一个Docker Image,我想要构build,当我在Windows和Mac Docker上运行build命令时,它工作正常,构build正确,但是如果我在docker上运行相同的Dockerfile -Ubuntu-Server VM,错误。 我的Dockerfile的关键部分是: […] # Dependencies RUN apt-get update && apt-get install -y apt-utils curl git tar gzip # Install Go ENV GO_VERSION 1.8 WORKDIR /tmp ADD https://storage.googleapis.com/golang/go$GO_VERSION.linux-amd64.tar.gz ./ RUN mv go /usr/local/ […] 但是在Ubuntu服务器上,VM在RUN mv go /usr/local/ -step时失败 并产生以下错误: Step 10/24 : RUN mv go /usr/local/ —> Running in 6b79a20769eb mv: […]

为特定文件searchDocker镜像

新的Docker的总数。 我的问题是,是否有一种方法来searchDocker镜像来查看是否存在任何Jar文件。 如果我理解正确的话,Docker镜像就是在图层中build立起来的,每一层都不一定属于那个镜像。 我最初的做法是“保存图像> image.tar”将所有图层放在一起,然后recursion地尝试search“* .jar”模式的结果焦油。 如果使用标准的tar,例如,我可以在tar的所有子目录中看到“less filename.tar”。 这似乎并不是这样一个形象已经tartarled。 有没有办法做到这一点,或者我从根本上误解了一幅图像是如何构build的,以及它在目标时发生了什么? 编辑:我其实是想特意做到这一点,而不是启动图像的docker容器,然后search。 这甚至有可能吗? 编辑:好吧,我会尽量让这个更清楚。 我试图采取这种做法: 1)从docker图像创build一个tarball:docker保存图像> image.jar 2)然后我试图用这个简单的脚本searchtar文件的jar文件: #Will list and extract all jars from a tar file arc=$1.tar; file='*.jar'; tar tvf $arc | grep -E "$file" && tar xvf $arc "$file" 3)这将用于标准tarball,但不适用于docker tarball 再一次,我对docker工人是全新的,我只是想知道是否有另一种方式来做这件事。

最简单的Dockerfile解压:找不到文件

我是一个新的docker用户。 我花了很多时间在一个错误,Dockerfile真的很简单,但我无法解决这个问题。 我试图下载一个tar文件,并将其解压缩 这里是我的Dockerfile(每次尝试不在同一时间在Dockerfile中,为了简单起见,我把它们放在一起) FROM ubuntu:latest # 1st try ADD https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz /tmp/ RUN ls -lah /tmp/glib-2.52.1.tar.xz ADD /tmp/glib-2.52.1.tar.xz /tmp # 2nd try ADD https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz /tmp/ RUN ls -lah /tmp/glib-2.52.1.tar.xz RUN tar -C /tmp/ -xf /tmp/glib-2.52.1.tar.xz # 3rd try WORKDIR /tmp/ RUN wget https://download.gnome.org/sources/glib/2.52/glib-2.52.1.tar.xz RUN ls -lah glib-2.52.1.tar.xz RUN tar -xf glib-2.52.1.tar.xz # 4th try RUN […]

导入AMI镜像作为Docker镜像

我有一个创build为焦油球的AMI图像。 焦油球需要被创build为一个Docker镜像。 接下来的步骤是: 1)从AMI创buildtar球:$ sudo tar –numeric-owner –exclude = / proc –exclude = / sys -cvf my-image.tar / images 2)从Tar球创buildDocker镜像:$ cat my-image.tar | sudodocker导入 – 我的形象:新 3)运行Docker镜像$ sudo docker run -it –rm –name my-image my-app-servers 步骤#2(从Tar创buildDocker镜像)不起作用。 它冻结。 一旦发出第二步,什么都不会发生。 也没有错误信息。 有没有其他方式来执行此操作?

tar:无法读取:docker中的目录

我想添加一个档案( .tar.gz ),并使用Dockerfile在图像创build过程中将其解压缩。 ADD archive.tar.gz /archive.tar.gz RUN tar xzf archive.tar.gz 当我想解压档案时,我得到如下信息: tar: /archive.tar.gz: Cannot read: Is a directory tar: At beginning of tape, quitting now tar: Error is not recoverable: exiting now 这对我没有任何意义,因为文件archive.tar.gz不是一个目录。

Docker卷:备份

我已经创build了一个卷容器。 还有一个容器从容器中安装。 卷容器: docker run -d –name nexus-data nexus:1.0 echo "data-only container for Nexus" 我的Nexus容器: docker run -d -p 8443:8443 -p 8081:8081 –name nexus –restart=always –volumes-from nexus-data nexus:1.0 所以这工作正常。 我能够删除和重新创build我的nexus容器,而不会丢失数据。 卷容器(不处于运行状态)正在保存数据。 但是这种方法的瓶颈就是容器。 当我意外删除这个容器时,所有的数据都没有了。 这可以发生得很快,因为一些有用的命令将删除停止的容器也将删除卷容器。 所以我想为我的卷容器创build备份。 我试过的方法: $ docker cp nexus:/this/folder/ /home/ubuntu/backup-folder 和 $ docker import nexus > /home/ubuntu/backup.tar 所以我有一个文件夹和一个.tar在我的主目录。 现在我想知道导入其中一个备份的正确方法是什么? 我读了有关docker export命令来创build一个“新的图像”,但我不喜欢这种方法,因为我的备份文件夹是相当大的。