我的具体用例是,我想组织一些关于运行容器的EC2实例的数据,并将其作为一个环境variables提供。 我想在容器build好的时候这样做。 我希望能够在我的Dockerfile中执行像ENV VAR_NAME $(./script/that/gets/var)这样的操作,但毫不奇怪的是这样做不起作用(只是得到string$(./script… )。 我应该提到,我知道docker run –env…会做到这一点,但我特别希望它被build成容器。 我错过了什么明显的? 这甚至有可能吗?
我在两个不同的文件夹中有两个单独docker-compose.yml文件: 〜/前/搬运工-compose.yml 〜/ API /搬运工-compose.yml 我怎样才能确保front的容器可以发送请求到api的容器? 我知道–default-gateway选项可以使用–default-gateway docker run为单个容器设置,这样一个特定的IP地址可以分配给这个容器,但是看起来这个选项在使用docker-compose时候是不可用的。 目前我最终做了一个docker inspect my_api_container_id并看看输出中的网关。 它的工作原理,但问题是这个IP是随机的,所以我不能依靠它。 这个问题的另一种forms可能是: 我可以使用docker-compose将固定的IP地址归入特定的容器吗? 但是最后我所看到的是: 两个不同的docker-compose项目怎么能相互沟通?
我正在build立一个简单的图像:一个拥有Riak(一个NoSQL数据库)的图像。 图像riak start作为一个CMD riak start Riak服务。 现在,如果我使用docker run -d quintenk/riak-dev作为守护进程运行它,它确实启动了Riak进程(我可以在日志中看到)。 但是,几秒钟后会自动closures。 如果我使用docker run -i -t quintenk/riak-dev /bin/bash运行它docker run -i -t quintenk/riak-dev /bin/bash riak进程没有启动(更新:请参阅对此的解释的答案)。 事实上,没有服务运行。 我可以使用terminal手动启动,但我想Riak自动启动。 我认为这种行为也会发生在其他服务上,Riak就是一个例子。 所以,运行/重启容器应该会自动启动Riak。 设置这个的正确方法是什么? 作为参考,这里是可以创build图像的Dockerfile(更新:使用所选答案进行更改): FROM ubuntu:12.04 RUN apt-get update RUN apt-get install -y openssh-server curl RUN curl http://apt.basho.com/gpg/basho.apt.key | apt-key add – RUN bash -c "echo deb http://apt.basho.com precise main […]
当我开始docker-compose up的Ubuntu容器退出与ubuntu exited with code 0 。 当我运行docker run -d -ti -p 80:80 -v ~/sph/laravel52:/www/laravel ubuntu ,所有工作正常。 如何使用Docker Compose复制此行为? 这是我的Dockerfile : # Version: 0.0.1 FROM ubuntu:15.04 ENV DEBIAN_FRONTEND noninteractive #INSTALL ALL RUN apt-get update && apt-get install -y \ nano \ php5-fpm \ php5-mysql \ nginx #NGINX CONF ADD nginx/sites-available/laravel.conf /etc/nginx/sites-available/ RUN rm /etc/nginx/sites-available/default RUN […]
Docker 1.9允许将parameter passing给dockerfile。 请参阅链接: https : //docs.docker.com/engine/reference/builder/#arg 我怎样才能通过在docker-compose.yml相同的arugments? 如果可能,请提供一个例子。
我使用Dokku在DigitalOcean上部署的Rails应用程序崩溃,并开始返回500个错误。 我怎样才能重新启动它没有推空提交?
基于Docker基于LXC的事实,我的理解是,Docker容器共享来自主机操作系统的各种资源。 我关心的是CPU内核。 这是一个场景: 主机linux操作系统有8个核心 我必须在上面的主机操作系统上部署一组docker容器。 我需要部署的一些docker集装箱将更适合使用2个核心 a)因此,如果我在该主机上运行所有Docker容器,它们是否会按照需要使用CPU /内核,就像它们在该主机操作系统上作为正常安装的应用程序运行一样? b)Docker容器是否会消耗自己的进程,并且其中包含的所有处理都将卡在该父进程的CPU内核中? c)如何指定docker容器使用多个核心(例如4个)。 我看到有一个-C标志,可以指向一个核心ID,但似乎没有选项指定容器随机挑选N个核心。
Erlang的特点之一(和定义,Elixir)是你可以做热代码交换。 然而,对于Docker来说,这似乎很奇怪,在那里你需要停止你的实例,并用保存新代码的新图像重新启动新实例。 这似乎是每个人都做的。 这就是说,我也知道有可能使用一个隐藏节点来将更新分发给networking上的所有其他节点。 当然,就像这样听起来像是在惹麻烦,但是… 我的问题如下:有没有人试过并取得了合理的成功,为Erlang / Elixirbuild立了基于Docker的基础架构,允许进行热码交换? 如果是这样,那么做什么,不该做什么和注意事项?
我试图find一个泊坞窗图像的特定标签,我怎样才能在命令行? 我尽量避免全部下载并删除不需要的图像。 在官方Ubuntu版本https://registry.hub.docker.com/_/ubuntu/中有几个标签(发布),而当我在命令行中search user@ubuntu:~$ docker search ubuntu | grep ^ubuntu ubuntu Official Ubuntu base image 354 ubuntu-upstart Upstart is an event-based replacement for … 7 ubuntufan/ping 0 ubuntu-debootstrap 0 另外在命令行search的帮助下https://docs.docker.com/engine/reference/commandline/search/ ,不知道如何工作? 是否有可能在docker search命令? 如果我使用raw命令通过dockerregistryAPI进行search,则可以获取信息 $ curl https://registry.hub.docker.com//v1/repositories/ubuntu/tags | python -mjson.tool [ { "layer": "ef83896b", "name": "latest" }, ….. { "layer": "463ff6be", "name": "raring" }, { […]
我试图分发一组连接的应用程序运行在几个链接的容器,其中包括一个需要: 分发包含一些种子数据; 允许用户添加额外的数据。 理想情况下,数据也将保存在链接的数据容器中。 我可以使用mongo基础实例,不装载任何卷(dockerhub图像: psychemedia/mongo_nomount – 这实质上是没有VOLUME /data/db语句的基础mongo Dockerfile)和一个Dockerfileconfiguration行的: ADD . /files WORKDIR /files RUN mkdir -p /data/db && mongod –fork –logpath=/tmp/mongodb.log && sleep 20 && \ mongoimport –db testdb –collection testcoll –type csv –headerline –file ./testdata.csv #&& mongod –shutdown 其中./testdata.csv与./testdata.csv在同一个目录( ./mongo-with-data )中。 我的docker组成configuration文件包括以下内容: mongo: #image: mongo build: ./mongo-with-data ports: – "27017:27017" #Ideally we […]