Tag: dockerfile

Docker-Compose问题与容器名称

我已经创build了一个包含所需包的Docker镜像。 我已经运行了指定主机和访客端口的docker镜像以及所需的卷安装示例: sudo docker run -it –name CONTAINERNAME -v /host:/guest -p hostportno:guestportno 我的容器运行良好。 我正尝试使用docker-compose将我的容器迁移到新的docker镜像。 我创build了docker-compose.yml文件,并指定了如下所示的必需参数: image: test1 ports – "1234:123" – "2000:223" volumes: – /home:/test -container_name: dockercomposetest working_dir: /test command: /bin/bash 我无法使用docker-compose来迁移它。 我得到如下所述的问题: Conflict. The name "test" is already in use by container eeedac72bb25. You have to delete (or rename) that container to be able […]

Docker中用于.NET Core应用程序的appSettings.json?

我在Docker容器中运行.net核心应用程序。 这是我的docker文件(只是为了build立一个开发环境): FROM microsoft/dotnet:1.0.1-sdk-projectjson ENV ASPNET_ENV Development COPY bin/Debug/netcoreapp1.0/publish/ /root/ EXPOSE 5000/tcp ENTRYPOINT dotnet /root/AVP.WebApi.dll 我在/ publish /文件夹中有一个appSettings.Development.json文件。 如果我构build并运行这个Docker文件,我最终会遇到一个奇怪的问题,.NET应用程序无法find它需要启动的appsettings(它们在appSettings.Development.json文件中)。 我已经确认,从Windows命令行如果我运行dotnet发布/ AVP.WebAPI.dll该应用程序抛出相同的例外,缺lessconfiguration设置。 但是,如果我cd /发布和运行dotnet AVP.WebAPI.dll应用程序启动和运行就好了。 任何想法如何更改我的docker文件,所以它会正确运行与appSettings.Development.json值的应用程序? (我也试图运行应用程序与所有值复制到常规appSettings.json文件没有运气) 我也尝试运行一个COPY命令来/而不是/ root和做dotnet AVP.WebApi.dll作为入口点,但是这导致项目无法find依赖关系。

Docker挂在RUN命令OSX上

我一直在使用Docker文档学习Docker,并且首先在Django的快速入门指南中遇到了一个问题。 该程序将正常build立,直到倒数第二个命令。 这是我的dockerfile和输出: FROM python:3.5.2 ENV PYTHONUNBUFFERED 1 WORKDIR /code ADD requirements.txt /code RUN pip3 install -r requirements.txt ADD . /code 然后当我运行: docker-compose run web django-admin startproject src . 我得到了整个东西,然后它挂起: Installing collected packages: Django, psycopg2 Running setup.py install for psycopg2: started Running setup.py install for psycopg2: finished with status 'done' Successfully installed Django-1.10.5 psycopg2-2.6.2 所以,因为我没有经验撰写,我尝试了最基本的docker构build包括docker文件。 […]

官方docker镜像中redis.conf的位置是什么?

我知道有可能传递你自己的configuration文件,但我宁愿编辑我关心的默认configuration的less数值。 我很难在任何地方find默认的redis.conf,我只需要将自己的文件复制到容器中?

Docker遵循上下文之外的符号链接

又一个Docker符号链接问题。 我有一堆我想复制到我所有的Docker版本的文件。 我的目标结构是: parent_dir – common_files – file.txt – dir1 – Dockerfile – symlink -> ../common_files 在上面的例子中,当我在Docker内部构builddir1时,我想file.txt被复制过来。 但我不想维护file.txt的多个副本。 通过这个链接,作为docker版本0.10 ,docker build必须 按照容器的根目录中的符号链接添加构build指令。 但是当我在Dockerfile中使用这两行时,我没有得到这样的文件或目录 : ADD symlink /path/dirname或ADD symlink/file.txt /path/file.txt 挂载选项将不会为我解决(跨平台…)。 我试过tar -czh . | docker build -t tar -czh . | docker build -t tar -czh . | docker build -t没有成功。 有没有办法让Docker跟随符号链接并将common_files / file.txt复制到构build的容器中?

Dockerfile中的开发依赖关系或用于生产和testing的Docker文件

我不知道是否应该为我的Node.js应用程序创build不同的Dockerfile文件。 一个用于没有开发依赖项的生产,另一个用于包含开发依赖项的testing。 或者基本上是开发Dockerfile.dev一个文件。 那么这两个文件的主要区别在于npm install命令: 生产: FROM … … RUN npm install –quiet –production … CMD … 开发/testing: FROM … … RUN npm install … CMD … 出现这个问题是因为我想通过docker run命令在容器内运行我的testing。 因此,我需要testing依赖项(通常是我的开发依赖项)。 看起来有点奇怪把生产中不需要的依赖关系放到图像中。 另一方面,创build/维护第二个Dockerfile.dev只是微小的差异似乎也是不正确的。 那么这种问题有什么好的做法?

如何转发docker容器中的所有端口

考虑: docker run -p 5000:5000 -v /host/:/host appimage 它转发5000到50000 即使在多个: docker run -p 5000:5000 -p 5001:5001 -v /host/:/host appimage 我想知道的是: docker run -p allports:allports 有没有可用的命令允许转发所有在容器中的端口? 因为在我的情况下,我运行的烧瓶应用程序。 为了testing目的,我想运行多个瓶子实例。 所以对于每个瓶子实例我想运行在不同的端口。 这个自动多端口转发会有帮助。

为什么“docker运行”错误“没有这样的文件或目录”?

我正在尝试运行一个运行自动构build的容器。 这是dockerfile: FROM ubuntu:14.04 MAINTAINER pmandayam # update dpkg repositories RUN apt-get update # install wget RUN apt-get install -y wget # get maven 3.2.2 RUN wget –no-verbose -O /tmp/apache-maven-3.2.2.tar.gz http://archive.apache.or g/dist/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gz # verify checksum RUN echo "87e5cc81bc4ab9b83986b3e77e6b3095 /tmp/apache-maven-3.2.2.tar.gz" | md5 sum -c # install maven RUN tar xzf /tmp/apache-maven-3.2.2.tar.gz -C /opt/ RUN ln -s […]

提交在/ workspace中生成的文件的容器更改(即使使用makefile)也不会保留到图像的新实例中

我正在使用一个生成大量文件的Java程序(即ANTLR使用语法生成parsing器)。 当我执行: java -cp "/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool Java8.g4 && javac *.java 在使用Docker镜像的交互式shell中,某些java文件及其类在当前目录中生成。 但是当我在Dockerfile中使用以下方法执行此操作时: RUN java -cp "/usr/local/lib/antlr-4.5-complete.jar:$CLASSPATH" org.antlr.v4.Tool Java8.g4 && javac *.java 该文件似乎并没有生成。 任何原因为什么发生这种情况,我怎么也许可以纠正这个使用Dockerfile中的RUN指令生成文件? 更新1:更多的信息,我的Dockerfile看起来像这样: FROM blah/blah_java MAINTAINER blabla RUN apt-get install -y make wget RUN mkdir -p /usr/java && wget -O java.tar.gz http://download.oracle.com/otn-pub/java/jdk/8u40-b25/jdk-8u40-linux-x64.tar.gz –header "Cookie: oraclelicense=accept-securebackup-cookie" && tar xfz java.tar.gz -C /usr/java ENV JAVA_HOME /usr/java/jdk1.8.0_40 […]

docker+铁轨+ redis – 救援人员没有运行

我创build了一个docker环境,创build3个图像:rails,postgresql和redis。 它一直工作得很好,但我发现我的redis映像似乎没有任何工作者在运行。 Docker信息 我的docker-compose.yml如下 web: build: . command: bundle exec unicorn -p 3000 -c config/unicorn.rb volumes: – .:/fitmo – ../fitmo-core:/fitmo-core ports: – "3000:3000" links: – db – redis environment: – REDIS_URL=redis://redis:6379 db: build: ./db/docker-files ports: – "5432" redis: image: redis:2.8 ports: – "6379" Resque Config require 'resque' require 'resque-scheduler' require 'resque_scheduler/server' require 'appsignal/integrations/resque' require 'yaml' […]