问题标签 [docker]
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.
lxc - 是否可以允许在同一映像上运行的容器共享它们的文件系统?
我将用一个例子来解释这个问题。假设我们在同一个图像上运行两个单独的进程。其中一个创建一个文件并继续执行。我需要在不同容器中运行的其他进程来查看、检查、更改此文件。
提前致谢。
docker - 我应该担心过多的、非运行的 Docker 容器吗?
每个docker run
命令,或RUN
Dockerfile 中的每个命令,都会创建一个容器。如果容器不再运行,它仍然可以通过docker ps -a
.
我是否应该担心拥有大量未运行的容器?我应该docker rm
在非运行容器上发布吗?
我不确定这些非运行容器会产生什么性能或内存/存储损失。
cloud - LXC 与 VM 的典型用例是什么?
我正在努力决定何时使用 LXC 容器比使用完整的 VM 更好。
您是否有任何精确的用例可以以一种或另一种方式带来一些争论?
LXC 是否更面向“PaaS”,可以在没有硬件控制的情况下运行应用程序?我们是否总是需要在需要基础设施控制的“IaaS”角度使用虚拟机?
问候,
linux - Docker:初始安装脚本失败(ubuntu 13.04,内核 3.8+)
我根据带有 3.8+ 内核的 Ubuntu 13.04 的 docker.io 安装说明创建了这个脚本,但是脚本在 lxc-docker 安装失败时被中断。
安装过程的最后一行是:
然后它将停留在命令行上,但这并不好。我想安装一些其他的东西并通过远程机器的退出命令正确退出。
这里哪里有问题?
我不想使用一些更复杂的远程配置工具,比如 puppet/chef/salt ,如果已经为各种操作系统准备了 100% 可靠的 docker 安装脚本,那就太好了。
谢谢
docker - 如何从主机获取 Docker 容器的 IP 地址
创建新容器后,是否可以运行命令直接从主机获取容器的 IP 地址?
基本上,一旦 Docker 创建了容器,我想滚动我自己的代码部署和容器配置脚本。
docker - 如何删除旧的 Docker 容器
这个问题与我是否应该关注多余的、非运行的 Docker 容器有关?.
我想知道如何删除旧容器。docker rm 3e552code34a
可以让你删除一个,但我已经有很多了。docker rm --help
不提供选择选项(如全部或按图像名称)。
也许有一个存储这些容器的目录,我可以轻松地手动删除它们?
riak - 在 docker 容器中自动运行服务
我正在设置一个简单的图像:一个包含 Riak(一个 NoSQL 数据库)的图像。riak start
该映像以 CMD形式启动 Riak 服务。现在,如果我将它作为守护进程运行docker run -d quintenk/riak-dev
,它会启动 Riak 进程(我可以在日志中看到)。但是,它会在几秒钟后自动关闭。如果我使用docker run -i -t quintenk/riak-dev /bin/bash
未启动的 riak 进程运行它(更新:请参阅答案以获得对此的解释)。事实上,根本没有任何服务在运行。我可以使用终端手动启动它,但我希望 Riak 自动启动。我认为其他服务也会发生这种行为,Riak 只是一个例子。
因此,运行/重启容器应该会自动启动 Riak。设置它的正确方法是什么?
作为参考,这里是可以用来创建图像的 Dockerfile(更新:使用选择的答案进行更改):
编辑: -f 根据 sesm 他的评论在 CMD 中更改为 -F
我自己的答案
在使用 Docker 一段时间后,我养成了使用 supervisord 来调整我的进程的习惯。如果您想要示例代码,请查看https://github.com/Krijger/docker-cookbooks。我使用我的主管图像作为我所有其他图像的基础。我在这里写了关于使用主管的博客。
lxc - 在不指定命令的情况下使用 Docker 启动容器
我对 LXC 很熟悉,想试试 docker。我面临的问题是我找不到一种方法来告诉 docker 在后台启动一个容器,而不执行命令。例如,使用 LXC 我会这样做:
lxc create -t ubuntu -n my_container
lxc-start -n my_container -d
此时,我将拥有一个正在运行的容器,我可以将其用作任何 VM(对其进行 ssh,在其中安装东西......)似乎 docker 阻止了这种用法。我错过了什么吗?
lxc - Run a complex series of commands in the same Docker container
I'm trying to automate the following loop with Docker: spawn a container, do some work inside of it (more than one single command), get some data out of the container.
Something along the lines of:
According to the documentation I should go with:
Unfortunately, this approach is not attractive nor maintanable as the list of instructions grows in complexity.
Wrapping the instructions in a script as in docker run <image> /bin/bash script.sh
doesn't work either since I want to spawn a new container for every iteration of the loop.
To sum up:
Is there any sensible way to run a complex series of commands as described above inside the same container?
Once some data are saved inside a container in, say, /home/results.txt, and the container returns, how do I get results.txt? The only way I can think of is to commit the container and tar the file out of the new image. Is there a more efficient way to do it?
Bonus: should I use vanilla LXC instead? I don't have any experience with it though so I'm not sure. Thanks.
firewall - 我的防火墙阻止了从 docker 容器到外部的网络连接
对我来说,这是一个非常标准的设置,我有一台运行 docker 和 ufw 作为我的防火墙的 ubuntu 机器。
如果我的防火墙已启用,则 docker 实例无法连接到外部
这是显示来自 docker 容器的被阻止连接的 ufw 日志。
我曾尝试使用 ip 添加规则。
并且没有变化仍然被阻塞。
如何使用 ufw 规则轻松允许从容器到外部的所有连接?