Tag: pipe理员

启动Docker容器来处理HTTP请求

我正在构build一个Web应用程序,供用户pipe理项目中的文件。 每个用户可以有多个项目,每个项目可以有多个文件。 我已经实现了这个使用Docker,其中每个项目是一个Docker卷。 当用户单击Web应用程序界面中的button修改其项目中的文件时,Web服务器configuration并启动一个工作者(这是另一个Docker实例)来修改Docker卷中的文件。 迄今为止,这一切都很好。 但是,现在我想通过HTTP提供这些项目文件。 我想到的策略是: Web服务器(如nginx)接受来自用户的传入HTTP请求 Web服务器检查传入请求以确定正在请求哪个项目。 例如,如果URL是sparkle-pony.myapp.com ,那么我们知道正在请求sparkle-pony项目。 如果这个项目不存在,nginx响应404 Not Found响应。 Web服务器还检查用户是否已login,以及login的用户是否有权查看项目。 否则,Web服务器将响应403 Forbidden HTTP响应。 Web服务器configuration并启动一个新的Docker容器,可能是另一个nginx进程。 部分configuration包括将正确的Docker卷安装到新容器上。 我们将这个新启动的容器称为“内部”容器,将现有容器称为“外部”容器。 外部容器将这个HTTP请求转交给内部容器,或者作为内部容器响应的代理。 内部容器可以访问项目的正确Docker卷,并确保请求用户拥有正确的权限,从而检查URLpath并从D​​ocker卷提供正确的项目文件。 请求被妥善处理后,内部容器closures。 所以,尽pipe如此,我有三个问题: 这是一个合理的策略? 它确实涉及启动一个新的Docker容器为每个传入的HTTP请求,但我认为没关系… 将HTTP请求从一个容器转交给另一个容器的最佳方式是什么? 还是外部容器必须代理来自内部容器的响应? 有人可以提供一些指针或如何设置这样的项目的例子? 有可能是我还不知道的一些工具或技术。 谢谢!

根据分配的标签监视泊坞窗容器

我正在使用bosun + cadvisor来监视我的mesos基础设施上的docker容器。 有没有办法监视特定的docker容器或容器,并写入警报? 也许使用分配给容器的标签? 因为我不能使用容器名称(mesos为容器生成一个自定义名称)。 谢谢。 编辑:我发现,cadvisor支持docker标签。 无论如何获得scollector和bosun查询使用标签?

Docker的 – 内存开关不能按预期工作

前言 我正在写一个小小的演示文稿,列出使用Docker时的一些“疑难杂症”,而且我已经碰到了自己的一个。 在解释让Docker在没有内存限制的情况下运行的危险时,我发现它并不像我预期的那样运行。 我用一个PHP脚本创build了一个Docker镜像,它将recursion地创build数组来消耗内存,报告当前使用了多less内存。 如果没有内存限制,脚本会以1GB的速度自杀。 你可以在这里获取图像: https : //hub.docker.com/r/gisleburt/my-memory-hog 你可以在这里看到源代码: https : //github.com/Gisleburt/my-memory-hog 我的期望是,以下内容将阻止脚本超出128mb的内存。 docker run -it –memory=128m –memory-swap=0 gisleburt/my-memory-hog 但是,在OSX(本地和使用虚拟框驱动程序的docker-machine)上,docker实际上是在250mb之前的脚本。 在Ubuntu上,脚本达到1GB,并自杀。 Weirder仍然认为,如果我们检查docker的docker stats ,我们可以看到容器实际上并没有超过它的内存限制。 实际上,在Ubuntu上使用–memory=4m运行时, –memory=4m docker stats仍然表示它不会超过4mb,即使脚本以1gb完成。 在Mac上,限制到4mb,杀死剧烈的5-6mb大关。 我假设我错过了分配内存的方式,但是我不知道它是什么。 题 为什么docker容器中的脚本似乎比docker容器使用更多的内存? 容器内部和外部的内存发生了什么变化? 版本信息 Mac客户端: Client: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Thu Oct 27 00:09:21 2016 OS/Arch: […]

Docker用户权限在访问容器中的文件夹时被拒绝

我正在运行docker-compose将django与其他一些服务结合在一起,具有以下configuration: Dockerfile : FROM ubuntu:16.10 FROM python:3.5.0 ENV EXTRACTOR_SRC=. ENV EXTRACTOR_SRVHOME=/srv ENV EXTRACTOR_SRVPROJ=/srv/extractor_django #Install package dependencies RUN apt-get update && apt-get -y upgrade RUN apt-get install -y python python-pip virtualenvwrapper # Create application subdirectories WORKDIR $EXTRACTOR_SRVHOME RUN mkdir media static logs VOLUME ["$EXTRACTOR_SRVHOME/media/", "$EXTRACTOR_SRVHOME/logs/"] # Copy application source code to SRCDIR COPY $EXTRACTOR_SRC $EXTRACTOR_SRVPROJ # […]

在使用CWL(通用工作stream程语言)时将目录挂载到docker工人容器

我试图在使用CWL时将一堆非常大的文件放到Docker容器中。 使用文件input的默认方法时 job.yml: input_file: class: File path: /home/ubuntu/data/bigfile.zip CWL跑步者以某种方式复制文件并卡住。 有没有简单的方法直接将目录挂载到docker集装箱? task.cwl: cwlVersion: cwl:draft-3 class: CommandLineTool baseCommand: run.sh hints: – class: DockerRequirement dockerImageId: name123 inputs: – id: input_file type: File inputBinding: position: 1 outputs: [] 提前致谢!

Craft CMS Manager Craftman – 没有这样的文件或目录:'//docker-compose.yml'

我用计算机上的craftman cms manager来安装工艺cms,几个星期前,我能够在本地运行工艺安装,并且工作正常。 但是,今天我试图通过运行这个命令来设置新的项目: craftman –port=8080 install 但是,我得到一个错误: mkdir://.craftman/config.d:权限被拒绝mkdir://.craftman/config.d:权限被拒绝//.craftman/config.d/docker-ports.conf:没有这样的文件或目录 然后通过运行craftman status来检查Craft CMS docker容器状态,我得到一个错误: 没有这样的文件或目录:'//docker-compose.yml'

503服务从manageiq泊坞窗容器不可用

我的Manageiq泊坞窗容器(manageiq / manageiq:fine-1)引发以下错误消息。 我的操作系统是Windows 10.该参考网站是链接 。 环境variables都是默认的。 但是这个URL https:// localhost:8443一直抛出下面的错误信息。 503 Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 我是否必须安排manageiq docker容器的某些设置或错过另一个过程? 更新 以下是evm.log的内容 [—-] E, [2017-06-01T10:21:19.879539 #229:2b15ca7b9138] ERROR — : MIQ(MiqServer#start_algorithm_used_swap_percent_lt_value) Not allowing worker [MiqUiWorker] to start since system memory usage […]

如何把两个bash命令在CWL文件中?

我是CWL工具的新手。 我可以在basecommand中使用任何bash命令,即: basecommand cat 要么 basecommand [wc, -w] 我应该如何修改它以使其与 cat | wc -w 会做?

是否有可能在虚拟机上有Docker?

我在想,我们是否可以在一个客户操作系统上安装docker。 我正在想的分层蓝图就是这样的 我将使我的容器在Docker之上运行,因此,我觉得可以解决Docker的多操作系统function 请build议这样的实施是否可行?

从Docker容器转储远程MySQL数据库

我试图将远程数据库转储到本地泊坞窗容器的数据库。 $ docker exec -i my_container \ mysqldump my_remote_database -h my_remote_host.me -u my_remote_user -p 这给了我远程转储好 所以这里是我的尝试: $ docker exec -i my_container \ mysqldump my_remote_database -h my_remote_host.me -u my_remote_user -p \ | docker exec -i my_container mysql -u my_local_user -pmy_local_password \ -D my_local_database $ docker exec -i my_container bash -c \ "mysqldump my_remote_database -h my_remote_host.pp -u […]