Tag: 文件

我可以将相同的卷装载到多个docker集装箱吗?

我需要将应用程序日志共享到已安装的卷。 我想要挂载相同的卷到所有docker集装箱保持日志。 可能吗? 它会影响在每个容器上运行的应用程序吗? docker run -d –name C1 -v /home/ubuntu/logs:/usr/local/apache/htdocs/ httpd docker run -d –name C2 -v /home/ubuntu/logs:/etc/app/logs my-docker-image:latest docker run -d –name C3 -v /home/ubuntu/logs:/usr/logs TestImage:latest

如何编写一个Dockerfile,我可以启动一个服务并运行一个shell,并接受shell的参数?

在Dockerfile中,最新的指令是: CMD sudo chown -R user:user /home/user/che && \ sudo service docker start && \ cd /home/user/che/bin/ && ./che.sh run 它的工作原理,但我不能传递更多的参数./che.sh 。 che.sh检查在执行其他任务后是否启动内部docker 。 它可以接受多个可选参数,如-r:111.111.111.111 。 我试图修改指令为: RUN sudo chown -R user:user /home/user/che && \ sudo service docker start ENTRYPOINT ["/home/user/che/bin/che.sh"] 为了像docker run -it –priviledged my/che -r:111.111.111.111 run那样调用它, docker run -it –priviledged my/che -r:111.111.111.111 run […]

Docker刚刚启动后退出

所以在开始这个问题之前,我是对docker的理解。 Docker有3个组件 图片 集装箱 Dockerfile 现在图像是容器被创build的,Dockerfile就像是一个stream动的东西。 简单地说, 图像是类 , 容器是图像的对象。 现在我不想采用Dockerfile的方法,在那里指定在创build容器时要执行的步骤。 我想在Linux上安装一些基本实体,比如MongoDb,Redis等,并通过它们运行我的服务器。 所以我开始像这样: 我从Docker Hub通过18261df960118..7a16(big hex key) docker pull ubuntu下载了Ubuntu映像,它返回了我的18261df960118..7a16(big hex key) 现在我必须为这个图像创build一个容器,以实现我所做的: docker create -h abc.com –name abc.com 18261df960118..7a16 它返回了我的容器的id。 为了进入容器,我必须首先启动它,然后连接到它,所以这里是命令docker start containerId后面的docker attach containerId 。 但每一次它都在说: 您不能附加到停止的容器,首先启动它。 请帮助我在哪里做错了,这可能是许多新手的问题,但我在这里卡住,请不要downvote相同。 提前致谢。

Docker CMD末尾的tail -f输出没有显示

使用Docker for Mac 1.13.1和以下Dockerfile: FROM ubuntu:latest MAINTAINER docker@ekito.fr #Install packages and clean downloaded packages in the lowest layer RUN apt-get update && apt-get -y install cron && rm -rf /var/lib/apt/lists/* # Add crontab file in the cron directory ADD crontab /etc/cron.d/hello-cron # Give execution rights on the cron job and create the log file to […]

docker php:7.1-fpm-alpine不能构buildGD

尝试从官方的php:7.1-fpm-alpine图像构build,在我的Dockerfile中使用以下摘录: FROM php:7.1-fpm-alpine RUN set -ex \ apk add –no-cache –virtual .build-deps \ freetype-dev \ libjpeg-turbo-dev \ libpng-dev \ \ && docker-php-ext-configure gd \ –with-freetype-dir=/usr \ –with-png-dir=/usr \ –with-jpeg-dir=/usr \ && docker-php-ext-install gd \ && apk del .build-deps 当试图用docker build构build这个时,GD在./configure期间失败,出现以下错误: configure: error: jpeglib.h not found 我可以确认jpeglib.h存在,并且正是我认为它应该在的地方 (事实上​​,确切地说它在Debian变体中的位置): $ docker run -it –rm php:7.1-fpm-alpine /bin/sh >$ […]

在Docker构build期间启动服务

我想在Docker构build期间启动一个服务。 我不需要这个服务在构build过程完成之后继续运行(或者我知道我可以使用CMD命令),但是我确实需要运行足够长的时间来执行第二个依赖于此服务的命令并运行。 更准确地说,我正在为ejabberd XMPP服务器编写一个Dockerfile,它也为这个服务器安装了一个模块。 我试图用ejabberdctl start启动ejabberd服务器,然后用ejabberdctl module_install实用程序安装模块,这取决于正在运行的节点。 它看起来像这样: RUN ejabberdctl start && ejabberdctl modules_update_specs && ejabberdctl module_install ejabberd_auth_http 现在我遇到了一个问题,我提出了两个可能的原因。 问题是我的版本不能从这一行开始工作,因为当第二个命令试图执行时节点closures了。 我得到以下错误,当您尝试使用ejabberdctl实用程序时,这是一个典型的错误,而不会实际启动节点: 失败的RPC连接到节点ejabberd @ localhost 命令'/ bin / sh -c ejabberdctl start && ejabberdctl modules_update_specs && ejabberdctl module_install ejabberd_auth_http'返回了一个非零的代码:3 这可能是因为服务的启动需要一些时间,比第二个命令执行所需要的时间要长,所以第二个命令会运行到正在启动的节点。 不知道这有多可能。 第二个原因可能是在构build过程中,依赖于init.d的服务的启动在Docker中不起作用。 我build立容器,直到导致问题的那一行,进入容器并手动执行命令,并且所有事情都按照它应该的那样工作。 所以总结一下,我想在构build期间启动ejabberd服务器,然后使用其控制工具来安装一些东西。 最后一个select是在没有运行服务器的情况下手动安装模块,但是我宁愿使用ejabberdctl控制工具来完成。

在docker容器中运行django

我试图做一个在Docker容器中运行的Django应用程序的简单示例。 使用这个图像https://hub.docker.com/_/django/只是为了简单。 不要告诉我,我不应该在生产中使用它:)应用程序是非常简单的,我很好,使用非常基本的Django服务器。 所以, 问题是我试图运行容器图像时,总是得到这个错误 C:\Users\slipo\PycharmProjects\simple_blog>docker run -p 8000:8000 my-blog python: can't open file './manage.py runserver 0.0.0.0:8000 –settings=mysite.settings.prod': [Errno 2] No such file or directory 但是,./ ./manage.py和mysite.settings.prod在容器中都存在。 容器创build日志显示文件存在: Step 7 : RUN ls -a —> Running in 932ed2ad3e4c . .. .idea Dockerfile blog manage.py mysite requirements.txt templates —> e7f938c1cbf2 Removing intermediate container 932ed2ad3e4c Step 8 […]