find每个Docker镜像的图层和图层大小

为了研究的目的,我试图抓取公共Dockerregistry( https://registry.hub.docker.com/ ),并找出1)平均图像有多less层,2)这些层的大小得到分配的想法。 不过,我研究了API和公共库以及github上的细节,但我无法find任何方法来: 检索所有的公共库/图像(即使这些是数千我仍然需要一个起始列表来遍历) find图像的所有图层 find一个层的大小(所以不是一个图像,但个别层)。 任何人都可以帮助我find一种方法来检索这些信息? 谢谢! 编辑:任何人都可以validation在Dockerregistry中search'*'是返回所有的存储库,而不是任何地方提到'*'的任何地方? https://registry.hub.docker.com/search?q=*

任何API或Web UI项目来pipe理Docker私人registry?

我无法find如何pipe理私人registry中的图像。 我可以推或拉图像,因为我知道id,但如何获得推送的图像列表? 以一个想要在他的组织的私人registry下看到可用图像的人为例。 她怎么办? 除非我弄错了,否则我找不到API或Web UI来发现registry内容,如index.docker.io与公共registry一起使用。 有没有开源项目来pipe理这个? 谢谢。

我可以暂停然后恢复Docker容器吗?

我想暂停Docker容器并在一段时间后恢复。 如何做到这一点? 暂停我的意思是它应该保存正在进行的过程(如video编码)的状态,然后在任何时候恢复它。

在Docker中相当于env-file的Kubernetes

背景: 目前我们正在使用Docker和Docker Compose来处理我们的服务。 我们将不同环境的configuration外化为定义由应用程序读取的环境variables的文件。 例如prod.env文件: ENV_VAR_ONE=Something Prod ENV_VAR_TWO=Something else Prod 和一个test.env文件: ENV_VAR_ONE=Something Test ENV_VAR_TWO=Something else Test 因此,我们可以简单地在启动容器时使用prod.env或test.env文件: docker run –env-file prod.env <image> 然后,我们的应用程序将根据prod.env定义的环境variables来select其configuration。 问题: 有没有办法从Kubernetes中的文件提供环境variables(例如定义一个pod时),而不是像这样硬编码它们: apiVersion:v1 类:Pod 元数据: 标签: 上下文:docker-k8s-lab 名称:mysql-pod 名称:mysql-pod 规格: 容器: – ENV: – 名称:MYSQL_USER 值:mysql – 名称:MYSQL_PASSWORD 值:mysql – 名称:MYSQL_DATABASE 值:样本 – 名称:MYSQL_ROOT_PASSWORD 价值:supersecret image:“mysql:latest” 名字:mysql 端口: – containerPort:3306 如果这是不可能的,那么build议的方法是什么?

从一个也在boot2docker虚拟机中的Docker容器作为localhost访问主机

假设我有一个在OSX上的8000端口上运行的服务器。 我的Docker容器如何通过localhost:8000访问它? 我无法更改主机名称,因为容器中的应用程序不在我的控制范围之内。 我已经阅读了前面有关使用–net="host"来访问主机networking的容器的讨论。 但是,我在OSX上,Docker在虚拟机中运行,所以Docker容器中的localhost使用–net="host"进入虚拟机,而不是真正的机器。 然后我尝试端口转发的解决方法,如下所示: VBoxManage modifyvm "boot2docker-vm" –natpf1 "tcp-port8000,tcp,,8000,,8000"; 无济于事。 任何build议将不胜感激。

如何在Docker容器上设置ulimit /文件描述符,图片标签是phusion / baseimage-docker

我需要在docker容器上正确设置文件描述符限制,我使用ssh连接到容器( https://github.com/phusion/baseimage-docker ) 已经尝试: 编辑limits.conf容器忽略这个文件 新手程序在https://coderwall.com/p/myodcqfind,但是这个docker图像具有不同types的init进程。 (运行) 我试图在/etc/pam.d中修改pam库的configuration 尝试在sshd_config中为ssh启用pam 它的输出总是一样的。 bash: ulimit: open files: cannot modify limit: Operation not permitted

在Ansible中逃避双花括号

如何摆脱Ansible 1.9.2双花括号? 例如,如何在下面的shell命令中转义双花括号? – name: Test shell: "docker inspect –format '{{ .NetworkSettings.IPAddress }}' instance1"

如何构build一个Java应用程序的docker容器

我想要做的是为我的Java应用程序构build一个docker镜像,但是对于大多数编译语言来说,下面的考虑应该是真实的。 问题 在我的构build服务器上,我想为我的应用程序生成一个docker镜像作为交付物。 为此,我必须使用一些构build工具(通常是Gradle,Maven或Ant)来编译应用程序,然后将创build的JAR文件添加到泊坞窗图像中。 因为我希望Docker镜像只执行JAR文件,所以我将从已经安装了Java的基础镜像开始。 有三种方法可以做到这一点: 让构build工具控制过程 在这种情况下,我的构build工具控制整个过程。 所以它准备了JAR文件,在创buildJAR之后,它会调用Docker来创build映像。 这是因为事先创build了JAR,而Docker可能忘记了创buildJAR所需的构build过程。 但是我的Dockerfile不再是独立的。 它取决于在Docker之外发生的步骤。 在我的Dockerfile中,我将有一个COPY或ADD语句,它应该将JAR文件复制到图像中。 当事先未创buildjar时,这个语句会失败。 所以只是执行Dockerfile可能不起作用。 如果您想要使用DockerHub上的自动构buildfunction来构build使用当前Dockerfile的服务,就会成为一个问题。 让Docker控制构build 在这种情况下,创build映像所需的所有步骤都会添加到Dockerfile中,以便通过执行Docker构build来创build映像。 这种方法的主要问题是没有办法添加到Dockerfile命令,这些命令应该在创build的docker镜像之外执行。 这意味着我必须将我的源代码和构build工具添加到泊坞窗图像中,并在图像中构build我的JAR文件。 这将导致我的图像比它必须是由于所有添加的文件在运行时将是不必要的。 这也会为我的图片添加额外的图层。 编辑: 正如@ adrian-mouat指出,如果我要添加源,build立应用程序并删除一个RUN语句中的源,我可以避免添加不必要的文件和图层到Docker镜像。 这将意味着创造一些疯狂的链式命令。 两个独立的版本 在这种情况下,我们将构build分为两部分:首先,使用构build工具创buildJAR文件,并将其上传到存储库(Maven或Ivy存储库)。 然后,我们触发一个单独的Docker构build,它只是从存储库中添加JAR文件。 结论 在我看来,更好的方法是让构build工具控制过程 。 这将导致一个干净的docker形象,因为图像是我们想要传递这是重要的。 为了避免有一个潜在的不工作的Dockerfile应该被创build作为构build的一部分。 所以没有人会意外地使用它来开始一个破碎的构build。 但是这不允许我与DockerHub集成。 题 有没有另一种方法我失踪?

如何将Dockerfile添加到dockerregistry页面?

我成功地从一个不同的镜像开始build立一个Dockerfile镜像,并使用一个Dockerfile 。 然后,我在dockerregistry中做了一个docker push入我的帐户,但我看不到我在registry页面中使用的Dockerfile 。 如何将用于创build映像的Dockerfile添加到registry页面?

如何从没有envvariables的主机上的docker容器中获取docker主机的主机名

除了使用环境variables之外,在主机上运行的容器内部还有什么方法来获得docker主机的主机名? 我知道我可以在容器创build时将主机名作为环境variables传递给容器。 我想知道如何在运行时查看它。 foo.example.com (docker host) bar (docker container) 有没有一种方法容器bar在docker主机foo.example.com运行得到“foo.example.com”? 编辑添加用例: 容器将为表单的服务发现创build一个SRVlogging _service._proto.name. TTL class SRV priority weight port target. —————————————————————– _bar._http.example.com 60 IN SRV 5000 5000 20003 foo.example.com. 其中20003是docker主机上的一个dynamic分配的端口,用于在bar中的某个固定端口上侦听的服务(docker处理从主机端口到容器端口的映射)。 我的容器将运行健康状况检查,以确保它已成功创buildSRVlogging,因为其他Docker主机上还有许多其他容器容器,这些容器也会创build自己的SRVlogging。 _service._proto.name. TTL class SRV priority weight port target. —————————————————————– _bar._http.example.com 60 IN SRV 5000 5000 20003 foo.example.com. <– _bar._http.example.com 60 IN SRV 5000 5000 […]