Tag: 文件

在Dockerfile中循环/迭代

我想包括和启用一个应用程序的官方docker基础镜像中的一些自定义插件。 这是目录结构的样子。 . +– Dockerfile +– plugins | +– plugin_1 | +– plugin_2 | +– plugin_3 | +– … | +– plugin_n 如果我需要包含插件plugin_1 , plugin_3 , plugin_7和plugin_8 ,Dockerfile看起来如下所示 : FROM myapp_officialimage COPY plugins/plugin_1/* /usr/lib/myapp/plugins/ RUN myapp-plugins.sh enable plugin_1 COPY plugins/plugin_3/* /usr/lib/myapp/plugins/ RUN myapp-plugins.sh enable plugin_3 COPY plugins/plugin_7/* /usr/lib/myapp/plugins/ RUN myapp-plugins.sh enable plugin_7 COPY plugins/plugin_8/* /usr/lib/myapp/plugins/ […]

将启动脚本添加到dockerfile

我已经使用openjdk构build了Docker镜像。 # config Dockerfile FROM openjdk:8 COPY . /usr/src/myapp WORKDIR /usr/src/myapp # build image docker build -t shantanuo/dbt . 它正在按照预期使用这个命令… docker run -p 8081:8080 -it shantanuo/dbt 一旦我login,我必须运行这个命令… sh bin/startup.sh 我的问题:是否有可能将启动命令添加到dockerfile? 我试图在我的dockerfile中添加这一行。 CMD ["sh", "bin/startup.sh"] 但是在构build映像之后,我不能使用-d参数来启动容器。

在Docker构build之后缺lessm2存储库

如果我运行一个docker build ,将maven依赖关系拉入到.m2版本库中,那么这个版本不会保留在图片中。 所以,如果我然后尝试我 tty到一个正在运行的容器,我的~/.m2/repository目录将是空的。 或者ii)如果我在第一个图像上创build另一个图像,这些图层将不得不再次下载。 我的Dockerfile内容在这里。 FROM maven:3.5.0-jdk-8-alpine RUN apk update \ && apk add ca-certificates \ && update-ca-certificates \ && apk add openssl \ bash \ git WORKDIR /app COPY . /app RUN mvn compile 我敢肯定,这是一个简单的docker工人的细节,我不理解。 任何人有任何见解吗?

Docker提交不保存最后的状态

我试图打开一个新的端口发布。 我想创build一个图像,然后从该图像创build一个新的容器。 我正在遵循这个解决scheme: 我如何分配端口映射到现有的Docker容器? 当我使用docker提交然后docker运行新的容器不包含我所做的文件系统更改。 什么可能导致这样的行为?

如何在Docker容器中不安装shell的情况下inheritance环境variables?

我的Dockerfile看起来像这样 FROM scratch ADD ca-certificates.crt /etc/ssl/certs/ ADD HelloWorldOnce /HelloWorldOnce CMD ["/HelloWorldOnce"] 但是,我的应用程序,名为HelloWorldOnce的二进制文件需要一些环境variables。 在rkt我会使用–inherit-env参数和主机的参数将被复制…在docker我只限于-e和–env-file 。 当我运行下面的命令命令应用程序似乎并没有得到参数。 docker run –env-file=/home/me/auth.env -ti –name HelloWorldOnce me/helloworldonce 二进制从命令行运行并运行在rkt。 我的猜测是inheritancevariables需要一个shell。

在Windows 7中构buildDocker镜像时出错

docker工人,我正在使用Windows 7 SP1。 它看起来像泊坞窗在我的机器上运行良好,因为我已经尝试运行hello-world命令docker run hello-world按照教程中的指示,并得到预期的结果。 现在我要做的是为.net核心控制台应用程序创build一个docker镜像。 我的应用程序构build并运行。 但是通过命令docker build -t myapp .build立docker镜像docker build -t myapp . 我得到下面的错误 在连接期间发生错误:发布http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.30/build?buildargs =%7B%7D&cachefrom =%5B%5D&cgroupparent =&cpuperiod = 0&c puquota = 0&cpusetcpus =&cpusetmems =&cpushares = 0&dockerfile = Dockerfile&labels =%7B%7D&memory = 0&memswap = 0&networkmode = default&rm = 1&shmsize = 0&t = duke&target =&ulimits = null:open //./pipe/docker_engine:系统找不到指定的文件。 在Windows的默认守护进程configuration中,docker客户端必须运行提升才能连接。 这个错误也可能表明docker守护进程没有运行。 在我的Dockerfile下面 FROM microsoft/dotnet:1.1-runtime-nanoserver […]

RUN echo -e“deb http …”准备目标文件的错误内容

主机与Ubuntu 16.04.2 。 Docker 版本17.06.0-ce 。 Dockerfile RUN echo -e "deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx\ndeb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx" | tee /etc/apt/sources.list.d/nginx.list 这导致在/etc/apt/sources.list.d/nginx.list中 : -e deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx 那么,就好像对反斜杠转义的解释一样。 但是这个“-e”发生在文件中。 然后这样的图像不能build立。 你能在这里给我一个踢吗?

由于“卸载前无法运行auplink”错误,无法运行docker build

当我运行docker build我得到这个: Sending build context to Docker daemon 10.24kB WARN[11935] Couldn't run auplink before unmount /var/lib/docker/aufs/mnt/21647778a50f097d4535246ec5206960dd909f4bb8b0e3d04fdd53a7402fc2de-init: exec: "auplink": executable file not found in $PATH Step 1/2 : FROM debian:jessie —> 86baf4e8cde9 Step 2/2 : RUN apt-get update WARN[11935] Couldn't run auplink before unmount /var/lib/docker/aufs/mnt/21647778a50f097d4535246ec5206960dd909f4bb8b0e3d04fdd53a7402fc2de: exec: "auplink": executable file not found in $PATH —> Running in […]

如何将主机名作为env var与rancher服务器传递

我使用docker1.12和牧场服务器1.5.9。 我正在尝试在牧场中创build一个堆栈来部署和编排我的应用程序。 我的问题是,我需要传递作为env var容器将运行的主机的主机名。 由于我只有一个图像将被用来在多个主机上创build一种容器(假设testing为2),所以我不能像HOSTNAME=myhostname那样传递它。 该值需要是一个将由docker主机设置的var 。 有谁知道如何做到这一点与牧民服务器用户界面? 有谁知道添加自定义主机时,牧场主如何检索主机名? 我们可以使用入口点或CMD来做到这一点吗?

Docker mySql:5.7没有运行

我是Docker的初学者。 我跟着一个教程,并添加docker-compose.yml文件。 该文件看起来像这样 – version: '2' services: webserver: build: ./docker/webserver image: image_name ports: – "80:80" – "443:443" volumes: – /Users/user_name/Sites/project_name:/var/www/html links: – db db: image: mysql:5.7 ports: – "3306:3306" volumes: – ./db:/usr/local/mysql/bin/mysql environment: – MYSQL_ROOT_PASSWORD= – MYSQL_DATABASE=DB_NAME 我能够在web上运行本地主机地址的项目,但连接到MySQL是不行的。 当我在terminal(我正在使用Mac)上运行“docker ps -a”时,mysql的状态为 – 退出(1)16秒前,端口为空。 任何想法/帮助?