我有一个运行jenkins的docker集装箱。 作为构build过程的一部分,我需要访问主机上本地运行的Web服务器。 有没有办法主机的Web服务器(可以configuration为运行在一个端口)可以暴露给jenkins容器? 编辑:我在Linux机器上本机运行docker。 更新: 除了@larsks回答下面,为了从主机获取主机IP的IP地址,我做了以下几点: ip addr show docker0 | grep -Po 'inet \K[\d.]+'
所以我最近发现了这个很棒的工具,它说 Docker是一个开源项目,可以轻松地从任何应用程序创build轻量级的,可移植的,自给自足的容器。 开发人员在笔记本电脑上构build和testing的相同容器可以在规模,生产环境,虚拟机,裸机,OpenStack集群,公共云等等上运行。 比方说,我有一个运行Nginx的Docker镜像,一个网站连接到外部数据库。 我如何在生产中缩放容器?
正如标题所说。 我需要能够检索到docker主机的IP地址和从主机到容器的portmaps,并在容器内部执行此操作。
我现在试图分配一个静态IP 172.17.0.1当一个Docker容器启动。 我使用端口2122作为此容器的ssh端口,以便让此容器侦听端口2122。 sudo docker run -i -t -p 2122:2122 ubuntu 这个命令将运行一个像172.17.0.5这样的随机IP的Docker容器,但是我需要为容器指定一个特定的IP地址。 以下shell脚本是我在高级networking设置中引用Docker文档的内容。 pid=$(sudo docker inspect -f '{{.State.Pid}}' <container_name> 2>/dev/null) sudo rm -rf /var/run/netns/* sudo ln -s /proc/$pid/ns/net /var/run/netns/$pid sudo ip link add A type veth peer name B sudo brctl addif docker0 A sudo ip link set A up sudo ip link set B […]
我正在试验Dockerfiles,我想我理解了大部分的逻辑。 但是,在这方面我并没有看到“揭露”和“发布”港口的区别。 我所见过的所有教程都包含了EXPOSE中的EXPOSE命令: … EXPOSE 8080 … 然后他们从这个Dockerfile构build一个图像: $ docker build -t an_image – < Dockerfile 然后在运行映像时发布与上面相同的端口: $ docker run -d -p 8080 an_image 或者使用发布所有端口 $ docker run -d -P an_image 在Dockerfile中公开端口的意义是什么? 会不会有需要首先公开一个端口,而不是以后发布? 实际上,我想在创build映像时指定我将在Dockerfile中使用的所有端口,然后不再打扰他们,只需使用以下命令来运行它们: $ docker run -d an_image 这可能吗?
如何在Docker容器中运行GUI应用程序? 是否有任何图像设置vncserver或什么,以便你可以 – 例如 – 添加一个额外的speedbump沙箱说火狐?
我在我的Ubuntu 13.10上安装了docker,当我input我的控制台时: sudo docker pull busybox 我得到以下错误: Pulling repository busybox 2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server Docker版本: $ sudo docker version Client version: 0.10.0 Client API version: 1.10 Go version (client): go1.2.1 Git commit (client): dc9c28f Server version: 0.10.0 Server API version: 1.10 Git commit (server): dc9c28f […]
长时间运行docker时,系统中有很多图像。 如何一次性删除所有未使用的docker图像以释放存储空间? 另外,我也想删除几个月前拉的图片,里面有正确的TAG 所以,我不是要求只去除未标记的图像。 我正在寻找一种方法来删除一般未使用的图像,其中包括无标记和其他图像,如数月前正确的TAG
我并不是要求与docker工使用监督员,而只是想让我的理解得到validation。 我知道docker在运行时运行一个进程。 另外,当我们需要在容器中运行多个进程时使用监督器。 我已经看到了几个例子,其中一个容器是从基本映像启动的,几个服务被安装,并且容器承诺形成一个新的映像,全部没有pipe理员。 所以,我基本的疑问是两种方法之间有什么区别。 我的理解是,当docker容器停止时,它向PID 1的进程发送一个kill信号,PID 1pipe理subprocess,并停止所有的subprocess,正如监督员完成的那样,而我们可以安装多进程,当docker run发出时,进程可以运行,当container停止时,只有PID 1发送信号,其他运行进程不会被正常停止。 请确认我对使用supervisord的理解是否正确。 谢谢
在Dockerfiles中有两个看起来类似于我的命令: CMD和ENTRYPOINT 。 但是我猜他们之间有一个(微妙的)区别 – 否则,对于同样的事情,有两个命令是没有意义的。 该文档说明了CMD CMD的主要目的是为正在执行的容器提供默认值。 和ENTRYPOINT : 一个ENTRYPOINT可以帮助你configuration一个你可以作为可执行文件运行的容器。 那么,这两个命令有什么区别呢?