问题标签 [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 投票
1 回答
309 浏览

security - 保护 docker 容器

首先让我说我是从 docker 开始的,我还没有尝试过,为了做到这一点,我想知道是否有一种方法可以阻止用户看到 docker 容器文件系统(我想容器 FS 位于主机下的普通文件上,就像它发生在 openvz 容器中一样,我错了吗?),我想阻止某些用户查看容器文件系统并在某些容器上运行 docker 命令,这可能吗?这可以使用 AppArmor 或类似软件完成吗?

0 投票
2 回答
9878 浏览

chef-infra - 在 docker 容器中安装 chef-server

我一直在尝试在 Docker 容器中安装 Chef-Server,但遇到了一些麻烦。我正在使用最新版本的 Ubuntu 12.04 和最新安装的 Docker 运行 VM。我运行一个基本的 Docker Ubuntu 12.04 容器并安装 chef-server,版本 11.0.12,一切顺利。问题是在安装后运行所需的“sudo chef-server-ctl reconfigure”步骤。设置冻结在

我得到了一个stacktrace.out

如果有人经历过这一点和/或有任何想法,我将不胜感激。

谢谢!

0 投票
5 回答
14193 浏览

macos - 如何在 OSX(boot2docker)上获得与 docker 容器的 ssh 连接

我在 OSX 上使用docker 和boot2docker

我想从我的终端获得一个 SSH 连接到一个正在运行的容器。

但我不能这样做:(

我认为这是因为 Docker 在虚拟机中运行。

0 投票
1 回答
3895 浏览

ruby-on-rails - Docker 轨道迁移

我正在尝试使用 docker 和 fig 运行我的 rails 应用程序,它也适用于 redis 服务器、mongodb、postgres 和 nginx,这是我的 fig.yml 的样子:

在启动应用程序之前一切正常,因为服务器上的 Rails 初始化程序挂钩启动,然后我收到有关数据库连接的错误,数据库不存在!当然是因为它不是在 Dockerfile 上创建的(见下文)

Dockerfile 内容:

我没有看到可以放置 rake db:create db:migrate db:seed 命令的地方!,如果我将它们放在 Dockerfile 的末尾,那么当 fig 尝试构建应用程序时,它会抱怨数据库服务器没有退出,(在 fig 构建应用程序容器时,其他容器未启动),我无法解决此问题?

我确信所有链接都可以正常工作,因此问题更多在于脚本的编排。

0 投票
4 回答
31979 浏览

docker - 是否可以在 docker 容器之间共享内存?

我在一个具有不同进程的应用程序上工作,我被要求包含这些进程以实现更多隔离。

问题是进程与单个“管理程序”进程共享内存以交换数据(它们使用经典的共享缓冲区)。这个解决方案是为了性能要求而实现的,因为它是在用户空间中运行的,所以用户空间和内核空间之间没有内容切换。

如果我没记错的话,不可能在单个 IPC 命名空间内运行多个 docker 容器,但我不知道单个 docker 容器是否可能属于不同的 IPC 命名空间,这可以解决我的问题。

欢迎使用其他解决方案,请记住,性能是一项要求,在此先感谢。

0 投票
1 回答
9325 浏览

networking - docker 容器是否有自己的 TCP/IP 堆栈?

我试图了解网络数据包的幕后情况,该网络数据包来自连接到主机的线路并定向到 Docker 容器内的应用程序。

如果它是一个经典的 VM,我知道到达主机的数据包将由管理程序(例如 VMware、VBox 等)传输到 VM 的虚拟 NIC,并从那里通过来宾操作系统的 TCP/IP 堆栈,最终到达应用程序。

在 Docker 的情况下,我知道来自主机的数据包从主机的网络接口转发到docker0网桥,该网桥连接到以容器内veth的虚拟接口结束的一对。eth0但在那之后呢?由于所有 Docker 容器都使用宿主内核,假设数据包由宿主内核的 TCP/IP 堆栈处理是否正确?如果是这样,怎么做?

我真的很想阅读有关幕后实际发生的事情的详细解释(或者如果您知道资源可以随意链接它)。我已经仔细阅读了这个页面,但它并没有说明一切。

提前感谢您的回复。

0 投票
1 回答
59383 浏览

memory - Docker容器和内存消耗

假设我正在启动大量基于相同 docker 映像的 docker 容器。这意味着每个 docker 容器都在运行相同的应用程序。可能是应用程序足够大并且需要大量硬盘内存。

码头工人如何处理它?

所有 docker 容器是否共享 docker 映像中定义的静态部分?

如果不是,将应用程序复制到机器上用于运行 docker 容器并为每个 docker 容器挂载此应用程序目录的某个目录是否有意义?

0 投票
3 回答
2187 浏览

linux - 重启命名容器分配不同的IP

我试图使用 Docker 部署我的应用程序,但遇到了一个问题,即重新启动命名容器会为容器分配不同的 IP。也许解释我在做什么会更好地解释这个问题:

  • Postgres 在一个名为"postgres"
    $ PG_ID=$(docker run --name postgres postgres/image)
  • 我的 webapp 容器链接到 postgres 容器
    $ APP_ID=$(docker run --link postgres:postgres webapp/image)

将 postgres 容器映像链接到 webapp 容器会在 webapp 容器中插入一个带有 postgres 容器 IP 的主机文件条目。postgres:5432这允许我使用(我正在使用 Django btw)在我的 webapp 中指向 postgres db 。这一切都很好,除非由于某种原因 postgres 崩溃。

在我手动停止 postgres 进程以模拟 postgres 进程崩溃之前,我验证了 postgres 容器的 IP:

现在模拟崩溃我停止 postgres 容器:

如果现在我通过使用重新启动 postgres

容器的ip改变:

因此,指向 webapp 容器中 postgres 容器的 IP 不再正确。我虽然通过命名容器 docker 为它分配了一个具有特定配置的名称,以便您可以在容器(网络和卷)之间可靠地链接。如果 IP 发生变化,这似乎违背了目的。

如果我每次 postgres 重新启动时都必须重新启动我的 webapp 进程,这似乎并不比仅使用单个容器来运行两个进程更好。然后我可以使用主管或类似的东西来保持它们都运行并用于localhost在进程之间进行链接。

我还是 Docker 的新手,所以我做错了什么还是 Docker 中的错误?

0 投票
2 回答
27770 浏览

centos - 创建沙发库时出现 Docker 错误 - ulimit:打开文件:无法修改限制:不允许操作

我正在尝试为 Couchbase 创建一个 docker 映像,但 CentOS 映像上的 dockerfile 出现以下错误。

构建它时,我收到以下错误..

我在一个论坛上看到我们可以在 docker.conf 文件中设置这些值。但我尝试创建此文件 /etc/init/docker.conf 并将以下几行放入该文件中 -

限制 memlock 无限 无限 限制 nofile 262144

但我仍然得到同样的错误。

如果我在 CentOS VM 上手动执行相同的步骤,它就可以工作。所以我想我需要在 Docker CentOS 映像上设置一些东西。

0 投票
1 回答
2435 浏览

docker - docker是无状态的吗?

docker是无状态的吗?我的意思是它是否存储有关正在运行的容器的信息?它必须而且应该,但问题是这些信息保存在哪里。我尝试杀死 docker daemon 并发现容器仍在运行。事实上,我无法终止该进程,而是终止了现有进程并创建了一个新进程。