我试图运行多个docker容器运行nginx监听端口80,但不同的主机端口映射到容器端口80。 大多数情况下,这是有效的,除了当nginx由于缺less一个结尾的斜杠做redirect。 server { listen 80; root /var/www; index index.html; location /docs {} } 鉴于上述nginxconfiguration和一个docker容器运行它与主机端口8080映射到容器端口80我可以得到本地主机:8080 /文档/通过curl好了: > GET /docs/ HTTP/1.1 > User-Agent: curl/7.35.0 > Host: localhost:8080 > Accept: */* > < HTTP/1.1 200 OK * Server nginx/1.9.5 is not blacklisted < Server: nginx/1.9.5 < Date: Sat, 28 Nov 2015 17:27:05 GMT < Content-Type: text/html < […]
–rm docker-compose run引用声明它具有–rm选项 运行后取出容器。 我想使这是一个默认的run行为,我在docker-compose.yml指定了一些服务。 所以,问题是 : 可以以某种方式在docker-compose.yml指定吗? 如果可以,我该怎么做? ( INB4“使用bash别名,卢克!”) :当然,我可以通过设置一些bash别名像docker-compose.yml alias docker-compose-run='docker-compose run –rm'但是我感兴趣的是如何通过docker-compose.yml ,而不是以某种外部的方式。)
我无法启动docker daemon 。 当我尝试我得到一堆错误说 invalid image sha256:{some sha here}, failed to verify image: sha256{some sha here} 然后说一行 Error starting daemon: layer does not exist 我怀疑这些图像是被破坏的,或者是上次closures服务器时出现的问题。 我不介意去除这些图像,但是如果没有启动docker工具,我不能find任何方法来实现这一点。 我希望有某种 – –skip verify论据,但是我找不到这样的东西。 我怎样才能让docker工人开始? OS是CoreOS 1010.5.0。
我已经在我的ufw上设置了一些规则,但我认为这只是没有阻止任何东西。 这是它的现状: ~# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From — —— —- 22 ALLOW IN Anywhere 80 ALLOW IN Anywhere 27015:27115/udp ALLOW IN Anywhere 27015:27115/tcp ALLOW IN Anywhere 22 (v6) ALLOW IN Anywhere (v6) 80 (v6) ALLOW IN Anywhere (v6) […]
我有以下容器安装程序。 在裸机服务器上有两个Docker Daemon安装并运行。 主Docker Daemon运行我的应用程序容器,暴露80/443到外面的世界。 插件Docker Daemon运行客户提供的一些容器,通过80/443与我的应用程序进行通信。 我想让客户访问插件Docker守护程序的API(2376),以便客户可以部署/启动/停止自己的容器。 客户只能访问API,而不能访问主机(SSH)。 我目前面临的问题是,如果客户运行一个容器,如docker run -v /:/host/root ubuntu rm -rf /host/root ,那该怎么办? 我的问题是我能做些什么来防止插件Docker守护进程挂载root /或/home/user/之外的任何其他目录, 在/home/user/启动Docker Daemon是否是一个选项? 我可以使用一些LSM(Linux安全模块SELinux / Apparmor)魔术来防止docker守护进程挂载除home用户或var / docker / libs之外的部分或全部主机path吗? 可以–userns-remap帮助我实现我的目标吗? 除虚拟机之外,还有其他选项吗? 服务器完全属于单个客户。 所以安全或数据泄漏并不是我最关心的问题。 我真正想要阻止的是Plugin Daemon中的某个人正在做一些愚蠢的事情,这会影响在Docker Daemon中运行的容器。 我想保持精益,坚持docker工作的唯一工作stream程,不会为虚拟机创build设置额外的工作stream程。
我在我的testing环境中运行了Docker中的chromedriver + chrome。 一切工作正常,直到最新的CoreOS升级。 这些是似乎工作的版本: VERSION=1185.5.0 VERSION_ID=1185.5.0 BUILD_ID=2016-12-07-0937 这是一个更新的版本,导致铬coredump: VERSION=1235.4.0 VERSION_ID=1235.4.0 BUILD_ID=2017-01-04-0450 看着变化,似乎docker从1.11.x升级到1.12.x,这打破了容器内的setns()调用。 Chrome使用setns()来创build名称空间。 这是示例输出: jsosic-coreos-test-20161207 ~ # docker –version Docker version 1.11.2, build bac3bae 从这个盒子的一个容器里面: [root@2939f21ecfaa /]# /opt/google/chrome/google-chrome [57:57:0107/015130:ERROR:browser_main_loop.cc(261)] Gtk: cannot open display: 这是新版本如何打破它的: jsosic-coreos-test-2017-01-04 ~ # docker –version Docker version 1.12.3, build 34a2ead [root@13ab34c36c82 /]# /opt/google/chrome/chrome Failed to move to new namespace: PID […]
我有一个运行docker与一个容器的Ubuntu服务器。 我的服务器IP地址是172.31.12.29/20在我的vpc。 它有两个桥梁(docker0 ans lxcbr0)。 我的容器IP地址是172.17.0.2/16。 主机和容器可以自己ping。 我有一个IP地址为172.31.1.233/20的vpc服务器。 我只是想让我的服务器到达我的容器,但是我不知道该怎么做。 我的两台服务器可以ping通自己。 我尝试这样做,configuration我的vpc路由表,将172.17.0.0/16目标请求路由到172.31.12.29,但不起作用。 任何想法 ?
正如杰罗姆所说, 您还需要添加一个stream程pipe理器; 例如Monit或Supervisor。 这是因为Docker会监视一个进程。 如果你需要多个进程,你需要在顶层添加一个来照顾其他进程。 换句话说,你正在把一个精简而简单的容器变成更加复杂的东西。 我不清楚为什么你需要一个容器内的进程pipe理器。 那么有人可以向我解释一下,在一个容器内部有一个stream程pipe理器有什么好处? 让systemd或新贵来处理stream程,而不是为你的容器增加额外的服务不是更好吗?
我试图在Docker容器中运行应用程序构build并收集资源使用统计信息。 我可以通过检查在Ubuntu 14.04主机上运行docker的id foobar容器的示例内存使用情况详细信息来收集使用情况度量标准: /sys/fs/cgroups/memory/docker/foobar/memory.stat 但在Centos 7主机上,“/ sys / fs / cgroups / memory / docker”目录缺失。 如何在Centos 7主机上find容器特定的内存或CPU使用情况。 谢谢
这个有一点理论上的问题,但请耐心等待。 目前我有一个运行几个Docker容器的服务器(4或5,取决于date和时间)。 我打算再增加一个,就像第一个,甚至第三个一样。 现在,我的问题是:如果我有15个容器来pipe理,而不是5个,那么使用Google Kubernetes有什么好处? 另外,是否有一个“官方”或者至less是“明确”的工作stream程从Docker容器迁移到Kubernetes的本地单元“pod”。 在你问之前,我知道豆荚是由容器制成的(甚至有一次)。 我的主要问题是“dockerfiles”与pod configs完全不同。 有任何想法吗?