Tag: docker dockerfile

在这里使用Dockerfile中的ENTRYPOINT / CMD文件

我想做的事 我的目标是最终得到一个Docker镜像,只要一个容器从它启动,就从标准input读取input,直到遇到EOF。 然后,它只是写回已经读取到标准输出。 基本上,我的想法是这应该是可能的通过使用这里的文档语法cat << EOF 。 我到目前为止做了什么 到目前为止,我使用CMD Dockerfile指令尝试了不同的变体,但直到现在才成功。 从我创build的所有图像中,我启动了docker run -it myimage的容器,以保持容器的stdin连接。 变体1 FROM alpine 3.7 CMD ["cat", "<<", "EOF"] 这导致以下错误: cat: can't open '<<': No such file or directory cat: can't open 'EOF': No such file or directory 变体2 FROM alpine 3.7 CMD ["cat << EOF"] 结果: container_linux.go:265: starting container process caused […]

在Docker中运行时,优雅地停止Solr

我正在docker容器中运行一个solr 我的dockerENTRYPOINT是$SOLR_HOME/bin/solr start ${options} 目前,当我运行docker stop <container Id>它杀死进程,但solr停止不正确 为了正确地停止Solr,我们需要运行: $SOLR_HOME/bin/solr stop 当docker stop <container Id>执行时,如何configurationdocker来调用solr stop命令?

在Windows server 2016 Docker容器上运行部署在Tomcat上的Java war文件

尝试在Windows server 2016上使用Docker运行Java .war文件。 使用Linux容器,可以通过拉取Tomcat映像( 它build立在openJDK之上,并使用Debian作为基础映像 )并通过Dockerfile将war文件添加到webapps文件夹来完成 。 但是,Tomcat目前没有任何Windows容器的映像,因为openJDK也不支持Microsoft / windowsservercore或Microsoft / nanoserver 在我看来,能够在Tomcat上运行Windows的战争我们需要: windowsservercore JDK:在windowsservercore上安装JRE 使用安装了JDK的Environment Vars进行Tomcat安装。 要创build最终映像,请通过PS下载并安装JDK: Dockerfile看起来像: FROM windowsservercore RUN powershell (new-object System.Net.WebClient).Downloadfile('http://javadl.oracle.com/webapps/download/Au toDL?BundleId=210185', 'C:\jre-8u91-windows-x64.exe') RUN powershell start-process -filepath C:\jre-8u91-windows-x64.exe -passthru -wait -argumentlist "/s,INSTALLDIR=c:\Java\jre1.8.0_91,/L,install64.log" RUN del C:\jre-8u91-windows-x64.exe CMD [ "c:\\Java\\jre1.8.0_91\\bin\\java.exe", "-version"] 但我不知道如何安装Tomcat的环境variables设置,然后添加战争的webapps目录。 听说WinDocks ,但我想build立没有它。 任何人都有这方面的一些见解?

Docker组合将Spark Worker UI端口dynamic地扩展为主机

我有Apache Spark在通过Docker Compose创build的容器中运行。 当我创buildworker时,我指定主机(我的笔记本电脑)上的哪个端口映射到worker上的Web UI端口8081 。 有了1个容器,这个工作正常,因为我可以绑定8081:8081和集装箱式的Spark Master Web UI正确链接到localhost:8081 。 问题是当我通过docker-compose scale worker=3的数量时,我无法在docker-compose.yml的主机上指定端口,因为缩放会发生冲突。 我已经尝试过使用dynamic端口映射,但是这会导致主机端口被转发到工作端口8081将是类似于32XXX但Spark Master WebUI链接将仍然假定工作者WebUI是在端口8081意味着没有链接工作。 有没有一种方法来扩大我的容器没有港口冲突 我docker-compose.yml的相关部分: worker: image: gettyimages/spark command: bin/spark-class org.apache.spark.deploy.worker.Worker spark://master:7077 hostname: worker environment: SPARK_CONF_DIR: /conf SPARK_WORKER_CORES: 2 SPARK_WORKER_MEMORY: 1g SPARK_WORKER_PORT: 8881 SPARK_WORKER_WEBUI_PORT: 8081 SPARK_PUBLIC_DNS: localhost links: – master – cassandra – kafka expose: – 7012 – 7013 – 7014 […]

如何将dockerfile命令转换为maven xml条目?

我是通过maven docker插件dockerizing我的Java应用程序。 我发现了一个简单的docker-maven-plugin,它创build了一个简单的docker文件..我想知道如何将docker文件命令(如ADD,COPY,VOLUME等)转换成maven xml条目? 我的意思是我需要能够通过maven pom.xml自定义我的dockerfile 我找不到任何文件或教程… 感谢您的input。

Docker:Mysql在启动后的几秒钟内崩溃

我在Mac 10.11.3 (15D21) 关于Docker我有: $ docker version Client: Version: 1.10.3 API version: 1.22 Go version: go1.5.3 Git commit: 20f81dd Built: Thu Mar 10 21:49:11 2016 OS/Arch: darwin/amd64 Server: Version: 1.10.3 API version: 1.22 Go version: go1.5.3 Git commit: 20f81dd Built: Thu Mar 10 21:49:11 2016 OS/Arch: linux/amd64 使用下面的Dockerfile(它用来解决Docker与mysql:错误意味着mysqld没有对目录的访问权限 ): FROM mysql:latest RUN deluser mysql RUN […]

如何在保留所有者和权限的同时从数据容器装载卷?

我正在使用Fig并尝试使用数据卷容器在Rails Web服务器和另一个容器中运行的Resque工作器之间共享上传的文件。 为此,数据卷容器定义了用于共享这些文件的/rails/public/system卷。 Rails和Resque进程作为rails用户在各自的容器中运行,这两个容器都是基于markb/litdistco映像的。 一起fig.yml看起来像这样: redis: image: redis:2.8.17 volumes_from: – file web: image: markb/litdistco command: /usr/bin/start-server /opt/nginx/sbin/nginx ports: – 80:8000 – 443:4430 environment: DATABASE_URL: links: – redis volumes_from: – file worker: image: markb/litdistco command: /usr/bin/start-server "bundle exec rake environment resque:work QUEUE=litdistco_offline RAILS_ENV=production" environment: DATABASE_URL: links: – redis volumes_from: – file file: image: markb/litdistco command: echo […]

在Windows Server Core Docker上安装.NET Framework 3.5

我正努力在Docker容器上安装.NET Framework 3.5。 我已经安装了4.5,但需要3.5来运行一个服务。 这是我的Dockerfile: FROM microsoft/windowsservercore SHELL ["powershell"] RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \ Install-WindowsFeature Web-Asp-Net45 RUN dism /online /enable-feature /featurename:NetFX3 /all COPY Startup Startup COPY Service Service RUN "C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" WCS.WindowsService.exe RUN mkdir Temp\Logs ENTRYPOINT C:\Startup\setupBatch.bat COPY ContainerApi ContainerApi RUN Remove-WebSite -Name 'Default Web Site' RUN New-Website -Name 'ContainerApi' -Port 80 \ -PhysicalPath 'C:\ContainerApi' -ApplicationPool […]

在我的Docker容器中,“ModuleNotFoundError:No module named <package>”

我试图在Docker容器中运行一个python脚本,我不知道为什么,python找不到任何python的模块。 我认为这与PYTHONPATH envvariables有关,所以我试图将它添加到Dockerfile中,如下所示: ENV PYTHONPATH $PYTHONPATH 但它没有工作。 这是我的Dockerfile的样子: FROM ubuntu:16.04 MAINTAINER SaveMe SaveMe@Desperate.com ADD . /app WORKDIR /app RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales # Set the locale RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 ENV PYTHONPATH ./app […]

将Tomcatparameter passing给Docker

我是Docker的新手,我有一个问题,我似乎无法find答案。 我正在做一个Docker镜像(consol / tomcat-7.0),并写了一个加载这个镜像的Dockerfile,复制我的war文件,并将一个server.xml,具有唯一的数据库连接细节和默认主机复制到一个新镜像中。 如果我运行了许多带有这个映像的容器,那么让每一个使用相同的war文件,但连接到不同的数据库,并在server.xml中有不同的URL的正确方法是什么? 我目前正在使用不同的细节Dockerfilebuild立图像,每次我想要一个新的实例,这似乎是一个浪费。 所以每次我想要一个新的实例时,我使用这个Dockerfile运行'build': FROM consol/tomcat-7.0:latest MAINTAINER xxx LABEL version="1.0" EXPOSE 80 443 RUN mkdir /vhost/ COPY FILES /vhost/ /vhost/ # my war files – same on every instance COPY FILES/server.xml /opt/tomcat/conf/ # my config file – different on each instance 然后运行这个新的图像。 这样做的正确方法是什么?