问题标签 [linux-containers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
23263 浏览

linux - 备份一个正在运行的 Docker 容器?

是否可以备份正在运行的 Docker 容器?该export命令适合这样做吗?

0 投票
4 回答
15014 浏览

macos - Docker 容器 - 如何配置以便在 vagrant 中运行时获得可行的 IP 地址?

Docker (www.docker.io) 看起来很棒。但是,在 Mac 上安装 VirtualBox、Vagrant ......最后是 Docker 之后,我发现无法从另一台计算机(或从 Mac 上的终端会话)访问在 Docker 容器中运行的服务。我试图访问的服务是 Redis。

问题似乎是没有路由到分配给 Docker 容器的 IP 地址。在这种情况下,容器的 IP 是 172.16.42.2,而 Mac 的 IP 是 196.168.0.3。

几点注意事项:

  1. 可以访问它——但只能从 VirtualBox 会话中访问。这可以使用 redis-cli -h 172.16.42.2 -p 6379 来完成。
  2. 我已将“config.vm.network :bridged”添加到 VagrantFile 以尝试获取,但这并没有解决问题。
0 投票
5 回答
61181 浏览

linux - 在 Docker 容器中自动启动服务

我正在用 docker 做一些初步测试。目前我有我的图像,我可以运行一些容器,其中:

我这样做docker attach container_id并启动 apache2 服务。

然后从主控制台我将容器提交到图像。

退出容器后,如果我尝试启动容器或尝试从提交的映像运行一个新容器,服务总是停止。

如何在服务启动的情况下创建或重新启动一个容器,例如 apache?

0 投票
2 回答
3278 浏览

architecture - 从容器 (docker) 中发布您的应用程序

周末我在docker 的 IRC上问了这个问题,但在我想通答案之前不得不离开:

如果我有许多在容器中运行的应用程序(让我们暂时假设它们都在相同的物理硬件上运行,但不一定是这种情况)并且我希望它们中的每一个都能够找到每个其他自动。

使用某种注册表(例如etcd或 DNS-SD/Bonjour),您可以宣布您的服务和任何相关细节,并让其他应用程序了解它们并相应地路由流量。

这里的问题是,虽然应用程序可以知道它容器中服务于哪个主机名/端口,但这不一定是它可以访问的端口或地址。有两个信息需要连接:

  • 可以访问服务的位置从容器外部访问
  • 服务做什么(版本号、服务类型);可从容器内部访问

您如何建议我通过容器屏障获取此信息?

  1. 我可以通过 TCP 向容器公开 docker,因此应用程序可以查询它的显示位置,但这似乎违反了关注点分离。
  2. 我可以在我的容器中打开一个文件/端口,在容器启动后主机系统会查询该文件/端口以准备发布,但这感觉有点像我要重新发明 WSDL。

关于我应该如何解决这个问题的任何想法或指导?

0 投票
2 回答
19014 浏览

docker - 在 Docker 中启动完整容器?

根据这个 github 问题,应该可以使用 Upstart、cron 等使用 Docker 0.6 或更高版本启动一个完整的容器,但我该怎么做呢?

我期待着

会像

我会得到一个登录屏幕,但它什么也没显示。我也尝试使用 ssh 访问它,但没有运气。我正在使用来自 Docker 索引的默认 ubuntu 映像。

0 投票
15 回答
654090 浏览

docker - 如何将端口映射分配给现有的 Docker 容器?

我不确定我是否在这里误解了某些东西,但似乎只能通过从图像创建新容器来设置端口映射。有没有办法将端口映射分配给现有的 Docker 容器?

0 投票
4 回答
10988 浏览

php - Docker和容器之间的连接

我正在尝试在 docker 的容器之间创建连接。一个带有 php5-fpm 的容器,第二个带有 nginx 的容器。

配置为 php5-fpm 默认值,只需少量更改:

和 nginx(/etc/nginx/sites-available/default):

然后我尝试使用https://github.com/jpetazzo/pipework创建连接,这就是为什么fastcgi_pass 192.168.1.2:9000;。我尝试使用来自容器的 IP 直接,但没有。

当我尝试使用 lynx 打开页面时,我有 BadGateway。

我尝试发布端口 MASTER_PORT=$(sudo docker port $MASTER_ID 9000),但没有任何... ping 没有问题。从 nginx 远程登录到端口 9000 保持打开几秒钟,然后“连接关闭...”

谁能解释我做错了什么?谢谢!

/编辑/我尝试将fastcgi_pass更改为172.17.42.1:9000;(主机上 docker0 的地址),然后在主机上启动 tcpdump:

tcpdump -i docker0 端口 9000

我有:

因此数据包在容器之间传递......但为什么是 BadGateway?

0 投票
1 回答
790 浏览

docker - 提交映像时如何复制 Docker 容器的配置?

理想情况下,一切都将使用 Dockerfile 和卷进行整理,但有时这并不实用或不方便。

例如,我发现一个已经设置了 Ghost 的图像,并且它似乎可以工作。所以我添加了一些博客条目。然后我意识到我实际上需要修改 config.js 来设置邮件。

所以我停止了容器,提交,在 bash 中进行了一些更改,再次提交,然后再次启动容器运行 Ghost。但是我很难让它工作,因为新图像没有工作目录和环境的配置。

提交镜像时如何复制 Docker 容器的配置?也许我需要编写一个docker inspect在容器上运行的脚本,将配置拉出,然后将其包含在docker commit命令行中?

0 投票
4 回答
13808 浏览

docker - 如何将 docker 容器的映像移动到永久磁盘?

我们注意到我们的容器占用了大量空间,其中一个原因是图像。

我们想移动图像。

我现在知道它们存储在 /var/lib/docker/graph/<id>/layer

有没有办法将这些移动到另一个位置/永久磁盘?

0 投票
2 回答
11220 浏览

performance - 如何优化 docker 容器的性能?

我测试了基于redis容器。 https://index.docker.io/u/dockerfile/redis/

使用相同的 redis-benchmark,redis-server 在容器内运行比在托管操作系统上运行要慢得多,实际统计数据如下所示。(第一个基准是针对 docker 容器)

那么,有没有办法优化 docker 容器的性能呢?