我处理具有不同进程的应用程序,并且我被要求包含这些进程以实现更多隔离.
问题是进程与单个"管理程序"进程共享内存以交换数据(它们使用经典的共享缓冲区).此解决方案是为了性能要求而实现的,因为它在用户空间中运行,因此用户空间和内核空间之间没有内容切换.
如果我没有错,则无法在单个IPC命名空间内运行多个docker容器,但我不知道单个docker容器是否可能属于不同的IPC命名空间,这可以解决我的问题.
其他解决方案是受欢迎的,请记住,性能是一项要求,提前谢谢.
根据这个github问题,应该可以用Docker 0.6或更高版本的Upstart,cron等启动一个完整的容器,但是我该怎么做?
我当时正在等待
docker run -t -i ubuntu /sbin/init
会工作就像
lxc-start -n ubuntu /sbin/init
我会得到一个登录屏幕,但它没有显示任何内容.我也尝试使用ssh访问它,但没有运气.我正在使用Docker索引中的默认ubuntu映像.
我们注意到我们的容器占用了大量空间,其中一个原因就是图像.
我们想移动图像.
我现在知道它们存放在 
/var/lib/docker/graph/<id>/layer
有没有办法将这些移动到另一个位置/永久磁盘?
我正在尝试在不使用 Visual Studio 的情况下生成 Docker 映像。我在项目文件夹中,我从 Windows 10 管理命令行执行  docker build .  我不知道如何进行这项工作。
[+] Building 1.3s (8/9)
 => [internal] load build definition from Dockerfile                                              0.0s
 => => transferring dockerfile: 753B                                                              0.0s
 => [internal] load .dockerignore                                                                 0.0s
 => => transferring context: 34B                                                                  0.0s
 => [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim             0.0s
 => [base 1/2] FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim                          0.0s
 => ERROR FROM docker.io/publish/app:latest                                                       1.2s
 => => resolve docker.io/publish/app:latest                                                       1.2s
 => CACHED [base 2/2] WORKDIR /app                                                                0.0s
 => CACHED [final 1/2] WORKDIR /app                                                               0.0s
 => …我有一个关于在Docker容器和UUID生成中运行的应用程序的问题.
这是我们的场景:
目前我们的应用程序正在使用事件驱动框架.
对于事件,我们根据mac地址,pid,
时间戳和计数器生成UUID .
对于像CoreOS这样的分布式系统上运行容器(虽然机会非常非常低),无法保证用于生成UUID的所有参数对于每个容器都是唯一的,因为集群中一个服务器上的一个容器可以生成UUID使用相同的mac,pid,time-stamp和counter作为集群上的另一个容器.
实质上,如果这两个UUID都生成一个事件并将其发送到我们的消息总线,那么显然会发生冲突.
在我们的分析中,这种情况似乎归结为每个Docker容器上mac地址的唯一性.
所以坦率地说:
我在周末在码头工人的IRC上问了这个问题,但在我考虑答案之前不得不停下来:
如果我有许多应用程序在容器中运行(暂时,假设它们都运行在相同的物理硬件上,但不一定是这种情况),我希望每个应用程序能够找到每个应用程序其他自动.
使用某种注册表(例如,etcd或DNS-SD/Bonjour),您可以宣布您的服务和任何相关细节,让其他应用程序了解它们并相应地路由流量.
这里的问题是,虽然应用程序可以知道它在容器中服务的主机名/端口,但这不一定是它可以访问的端口或地址.有两点需要加入的信息:
您如何建议我在容器屏障上获取此信息?
关于如何解决这个问题的任何想法或指导?
我测试了基于的redis容器. https://index.docker.io/u/dockerfile/redis/
使用相同的redis-benchmark,redis-server在容器内运行要比在托管操作系统上运行慢得多,实际统计数据如下所示.(第一个基准是Docker容器)
那么,有没有办法优化docker容器的性能?
vagrant@precise64:/tmp$ redis-benchmark -p 49153 -q -n 100000
PING (inline): 5607.27 requests per second
PING: 6721.79 requests per second
MSET (10 keys): 6085.69 requests per second
SET: 6288.91 requests per second
GET: 6627.78 requests per second
INCR: 6454.11 requests per second
LPUSH: 6449.12 requests per second
LPOP: 5355.90 requests per second
SADD: 6237.91 requests per second
SPOP: 6794.40 requests per second
LPUSH (again, in order to bench LRANGE): 6089.76 requests per second
LRANGE (first 100 elements): 6000.24 …我试图更好地理解Docker世界,并且似乎无法将我的大脑包围在这些之间的差异.我相信 OCF是一个由OpenContainers认可的新兴容器标准,我相信 Docker将成为该标准的第一个参考实现.但即便如此,我也担心Google Gods似乎没有提供以下答案:
在docker之上运行的容器和在JVM之上运行的自包含Java程序之间的最大区别是什么?
我假设两者都直接在没有底层可视化的物理Linux服务器上运行.
docker ×10
linux-containers ×10
lxc ×2
architecture ×1
boot2docker ×1
dockerfile ×1
mac-address ×1
macos ×1
performance ×1
runc ×1
ssh ×1
uuid ×1
windows ×1