我在我的服务器上使用Shorewall作为简单的独立防火墙,并且也想使用Docker 。 通过使用Docker容器及其端口redirect docker设置自己的iptables规则/链,如果shorewall被重新启动,将会被终止。 所以容器将变得无法访问 。 有没有人设法保存/恢复docker规则在岸边墙重新启动或有没有人有另一种解决方法? 也可以看看: 有类似问题的Shorewall邮件列表 GitHub Issue#2801 @ dotcloud / docker
我尝试通过一个卷与我的nginxnetworking服务器共享我的php5-fpm套接字。 Fpm和nginx运行在不同的容器中,我想通过共享卷来从fpm放置套接字文件来使它们工作。 2014/04/13 10:53:35 [crit] 33#0: *1 connect() to unix:/container/fpm/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.8.2, server: docker.dev, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/container/fpm/run/php5-fpm.sock:", host: "docker.dev" 我已经尝试将权限设置为777,并将php5-fpm.socket组更改为www-data 。 fpm容器的Dockerfile FROM ubuntu:13.10 RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y php5-cli php5-common RUN apt-get install -y php5-fpm php5-cgi ADD […]
我已经设置了以下环境,以便在apt-get install期间不会询问问题/对话框: ENV DEBIAN_FRONTEND noninteractive # export DEBIAN_FRONTEND="noninteractive" 这相当于: export DEBIAN_FRONTEND="noninteractive" 然而,当从一个Dockerfile构build一个镜像时,在一个特定的Debian / Ubuntu软件包安装(使用apt-get install)结束时,软件包configurationdebconf说: debconf: unable to initialize frontend: Noninteractive # export DEBIAN_FRONTEND="noninteractive" debconf: (Bareword "Debconf::FrontEnd::Noninteractive" not allowed while "strict subs" in use at (eval 35) line 3, <> line 1.) debconf: falling back to frontend: Noninteractive Subroutine BEGIN redefined at (eval 36) line […]
我正在使用Docker在CentOS 6.4服务器上部署一些服务,并试图找出如何正确备份它们生成的数据。 例如,其中一项服务是用户可以上传文件的networking应用程序。 对于这个容器,我有一个/files我想要备份的/files卷。 主机挂载看起来像是有点皱眉,因为这样的挂载是不可移植的 – 就像在这篇博客和docker的文档中所说的那样。 我从同一个博客文章知道,我不需要主机装载docker inspect中的文件,我可以使用docker inspect来找出文件的位置。 但这是我的问题:我正在考虑只备份构build容器和与其相关联的卷所需的dockerfiles。 在可能的情况下,我必须从备份中恢复所有内容,如何才能知道哪个卷目录对应于哪个容器? 重build容器导致id和音量path改变,所以我需要一些额外的信息来匹配它们。 还有什么,如果有的话,我应该备份,才能真正恢复一切?
阅读完文档后,我发现自己对如何最好地pipe理高效的应用程序/服务数据感到困惑。 似乎有3个选项: 只需将卷映射到主机目录(即docker run -v参数) 为数据创build一个docker容器图像(即单独的容器和–volumes-from ) 创build一个docker卷(即docker volume create ) 现在看来,接受的做法是选项#2,但是我想知道#3的目的是什么。 特别是如何正确处理docker volume这些情况,使用数据卷容器还是更适合每种情况? 您需要在服务器的单独卷和/或存储层中提供应用程序数据 备份 恢复数据
我正在玩Amazon ECS(重新包装Docker),我发现ECS似乎没有提供一个Dockerfunction。 也就是说,我想在一个实例中运行多个容器,并且请求进入IP地址1映射到容器1,并且请求到达IP地址2映射到容器2等。 在Docker中,通过以下方式将容器绑定到特定的IP地址: docker run -p myHostIPAddr:80:8080 imageName command 但是,在Amazon ECS中,似乎没有办法做到这一点。 我已经设置了一个具有多个弹性IP地址的EC2实例。 将容器configuration为任务定义的一部分时,可以将主机端口映射到容器端口。 但是,与Docker不同,ECS不提供将主机IP地址指定为映射的一部分的方法。 额外的麻烦是,我想从容器N出站请求有容器N的外部IP地址。 有没有办法做到以上所有? 我已经浏览了AWS CLI文档以及AWS SDK for Java。 我可以看到CLI可以返回一个包含如下元素的networkBindings数组: { "bindIP": "0.0.0.0", "containerPort": 8021, "hostPort": 8021 }, 而Java SDK有一个名为NetworkBinding的类表示相同的信息。 但是,此信息似乎是仅输出,以响应请求。 我找不到向ECS提供这个绑定信息的方法。 我想这样做的原因是我想为不同的选区设置完全不同的虚拟机,使用不同的容器可能在同一个EC2实例上。 每个虚拟机都有自己的Web服务器(包括不同的SSL证书),以及自己的FTP和SSH服务。 谢谢。
我正在关注CoreOS Docker文档 ,它提到了启动容器的命令如下: docker run someImageName /bin/somebinary someImageName是一个图像。 当/ bin / somebinary退出时,图像将不再运行。 我只是想运行一个图像,而不指定任何二进制文件运行。 相反, 我只是想运行通常在映像操作系统中运行的服务(例如systemd / sysvinit) 。 这似乎是任何人都想用Docker做的最常见的事情,但试图运行一个没有命令的图像返回: 2014/02/05 14:49:19 Error: create: No command specified 我如何启动Docker容器并运行完整的操作系统,而不是指定命令 ?
我需要从一个特定的目录运行一个应用程序。 $ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014' 2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory 该目录完全存在,如果我通过交互式运行bash连接到docker,则可以运行上述命令。 $ sudo docker run -i -t ubuntu/decomposer /bin/bash # cd /local/deploy/decomposer; ./decomposer-4-15-2014 我可以通过指定完整的path来运行我的程序,但是它会崩溃,因为它期望从当前目录启动。 我能做什么?
我正在尝试将一个docker镜像推送到Google的容器registry中,但不断收到有关Dockerlogin失败的错误。 我跑 gcloud docker — push gcr.io/<my-project-id>/test-image 我回来了 ERROR: Docker CLI operation failed: Error response from daemon: login attempt to https://appengine.gcr.io/v2/ failed with status: 404 Not Found ERROR: (gcloud.docker) Docker login failed. 其他gcloud操作不经过docker工作。 我可以例如通过gcloud container clusters create my-cluster一个集群gcloud container clusters create my-cluster 。 我今天玩了一个本地registry,不知道这是否会破坏。 谢谢!
我在一个办公室工作,我的笔记本电脑连接到互联网,但是严格控制。 我不允许在其上安装未经授权的软件。 我的开发工作站是我可以随我做的,但它没有互联网连接。 有没有什么办法让我从集线器上下载Docker镜像作为一个文件,然后运行我的开发工作站? 类似于我可以下载RPM或Ruby Gems并将其刻录到CD? 或者是使用“docker pull”命令下载图像的唯一方式?