标签: fig

无法在使用Ubuntu的docker容器中安装pip包

我正在按照无花果指南使用带有python应用程序的docker,但是当docker启动命令时

RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Step 3 : RUN pip install -r requirements.txt
 ---> Running in fe0b84217ad1
Collecting blinker==1.3 (from -r requirements.txt (line 1))
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', gaierror(-2, 'Name or service not known'))': /simple/blinker/
Run Code Online (Sandbox Code Playgroud)

这重复几次,然后我收到另一条消息:

Could not find any downloads that satisfy the requirement blinker==1.3 (from -r requirements.txt (line 1))
  No distributions at all found for blinker==1.3 (from -r requirements.txt (line 1))
Run Code Online (Sandbox Code Playgroud)

所以由于某种原因,pip无法访问docker容器内的任何包.有什么我需要做的,以允许它上网?

然而,pip可以很好地在docker容器之外安装东西,并且即使使用那个确切的package(blinker==1.3)也能正常工作,这样就不是问题了.此问题也不是特定于该包.我pip install …

python pip docker fig

63
推荐指数
12
解决办法
5万
查看次数

我可以在docker-compose中使用mem_limit吗?如何?

docker-compose支持mem_limit?我该怎么测试呢?

我有一个以下docker-compose.yml

repository:
  image: myregistry/my_nginx_image
  mem_limit: 60m
  volumes:
    - /etc/localtime:/etc/localtime
  ports:
    - "80:80"
Run Code Online (Sandbox Code Playgroud)

如何证明容器实际上不超过60 mb的RAM?

我在用:

  • 码头1.3.1
  • docker-compose 1.1.0

docker fig

48
推荐指数
2
解决办法
5万
查看次数

如何进入运行postgres容器的psql?

我使用fig网站上的教程创建了一个postgres容器.我命名了容器db.

容器正在运行,我的应用程序正常连接.我试图运行命令fig run db psqlDB容器中运行,并得到了错误:

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

如何进入psql正在运行的db容器中的接口?

postgresql docker fig

27
推荐指数
3
解决办法
3万
查看次数

从网络中的外部机器访问Docker

是否可以从外部设备访问docker服务?我通过无花果构建了服务并暴露了端口3000.我使用带有docker-osx的fig,因此docker在虚拟机内运行.

现在我需要访问外部设备(即手机或平板电脑)提供的服务.

目前我只能从托管VirtualBox-Environment的机器上使用localdocker:3000访问该服务.

macos virtualbox docker fig

15
推荐指数
3
解决办法
1万
查看次数

Docker + fig/compose + nginx + node.js + mysql + redis

我正在尝试在Docker多个容器上设置Node.js应用程序.我的应用程序目前在一个Ubuntu DO Droplet上使用:

  1. Node.js(表达4)
  2. 应用程序数据库的mysql
  3. redis用于键值存储
  4. nginx用于负载平衡并提供静态文件.

我需要对不同的部分进行dockerize,显然每个容器一个,然后使用Docker-Compose(以前称为图)简单描述不同的容器并设置它们之间的链接.我对多容器appraoch的窃取不清楚.
一个用于nginx,
一个用于Node.js,我的快速应用
一个用于MySql
,一个用于Redis

Docker-compose.yml会是什么样子?我猜nginx,mysql和redis将是未经修改的官方图片?虽然node.js将有一个构建指令指向Dockerfile,它会注意到它是基于node.js官方映像以及配置指令吗?我需要配置/配置mysql和redis例如,这是否意味着每个都需要与自己的Dockerfile分开?

容器之间的链接方式是什么?使用卷将文件复制到它们中,设置端口,调整hosts文件以将some.domain.com映射到nginx ip?

然后我需要在全局安装一些npm软件包,比如nodemon和PM2,并设置一些cron作业......(在Node.js容器上?)

这是初稿,如果能够更好地理解这个新设置,我将不胜感激:

泊坞窗,compose.yml

nginx:
  image: nginx
  links:
    - "node"

node:
  build: .
  volumes:
    - "app:/src/app"
  ports:
    - "3030:3000"
  links:
    - "db:mysql"

db:
  image: mysql:5.6
  environment:
    - MYSQL_ROOT_PASSWORD=mypassword
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM node:0.12

RUN mkdir /src

RUN npm install nodemon pm2 -g

WORKDIR /src

ADD app/package.json /src/package.json

RUN npm install

ADD app/nodemon.json /src/nodemon.json

EXPOSE 3000

CMD npm start
Run Code Online (Sandbox Code Playgroud)

我正在使用这个简单的项目作为基础,虽然我的应用程序需要

mysql nginx node.js docker fig

15
推荐指数
1
解决办法
1万
查看次数

docker-compose:使用多个Dockerfiles进行多种服务

我正在使用docker-compose,我想为不同的服务构建步骤使用不同的Dockerfiles.该文件似乎表明放置不同Dockerfiles不同的目录中,但我想他们都在同一个(也许区分使用以下约定:Dockerfile.postgres,Dockerfile.main ...).这可能吗?

编辑:我有的场景包含这个docker-compose文件:

main:
  build: .
  volumes:
    - .:/code
  environment:
    - DEBUG=true

postgresdb:
  extends:
    file: docker-compose.yml
    service: main
  build: utils/sql/
  ports:
    - "5432"
  environment:
    - DEBUG=true
Run Code Online (Sandbox Code Playgroud)

postgresdbDockerfile 在哪里:

FROM postgres

# http://www.slideshare.net/tarkasteve/developerweek-2015-docker-tutorial
ADD make-db.sh /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

主要是:

FROM python:2.7

RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/

RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ADD . /code/
Run Code Online (Sandbox Code Playgroud)

这现在可以正常工作,但我想postgresdb通过调用Python脚本扩展其Dockerfile,该脚本根据基于SQL Alchemy构建的模型在数据库中创建表(Python脚本将被称为python manage.py create_tables).我想将它添加到db的Dockerfile中,但是由于容器的隔离,我不能在那里使用SQL Alchemy,因为该图像是基于postgres图像而不是Python的,并且它不包含sqlalchemy包......

我能做什么?我尝试使用该main服务postgresdb …

docker fig docker-compose

13
推荐指数
3
解决办法
2万
查看次数

设置docker/fig Mesos环境

我正在尝试建立一个docker/fig Mesos集群.我是无花果和Docker的新手.Docker有很多文档,但我发现自己很难理解如何使用fig.

这是我的fig.yaml:

zookeeper:
  image: jplock/zookeeper
  ports: 
  - "49181:2181"
mesosMaster:
  image: mesosphere/mesos:0.19.1
  ports: 
    - "15050:5050"
  links: 
    - zookeeper:zk
  command: mesos-master --zk=zk --work_dir=/var/log --quorum=1
mesosSlave:
  image: mesosphere/mesos:0.19.1
  links: 
    - zookeeper:zk
  command: mesos-slave --master=zk
Run Code Online (Sandbox Code Playgroud)

谢谢 !


编辑:

感谢Mark O`Connor的帮助,我创建了一个基于docker的工作台设置(+风暴,chronos等等).

享受,如果您觉得这很有用 - 请提供:https: //github.com/yaronr/docker-mesos

PS.请+1马克的答案:)

docker mesos fig apache-storm

12
推荐指数
1
解决办法
1万
查看次数

Docker撰写圆形容器链接

我正在尝试用docker来集成我们的开发环境.这包括Google Appengine项目的混合以及最终在容器化vm内的Google Compute引擎中托管的服务.

我们当前的开发环境引导脚本在boot2docker中引入elasticsearch和nginx,而其他应用程序在dev_appserver appengine沙箱中的localhost:{product port}上运行.这个过程很难管理和维护,因为它需要大量了解我们的应用程序如何通信.

我在docker-compose中遇到错误,它检测到容器之间的循环依赖关系.

cs和vbc以及aa和sr之间的循环导入.

由于此配置仅适用于开发环境(mac osx),因此在将所有产品套件依赖项链接在一起时,是否有人就不同的方法提出建议或想法.

docker-compose.yml的一部分:

elasticsearch:
  build: ./compute/containers/elasticsearch/elasticsearch
  ports:
    - "9200:9200"
  environment:
    - PROJECT_ID=localhost
nginx:
  build: ./compute/containers/elasticsearch/nginx
  links:
    - elasticsearch:localhost
  ports:
    - "9201:9201"
cs:
  build: ./CS
  command: dev_appserver.py /src/ --host=0.0.0.0 --admin_host=0.0.0.0 --port=8080 --admin_port=9080 --storage_path=/data/
  ports:
    - "8080:8080"
    - "9080:9080" 
  volumes:
   - /Users/source/CS/src:/src
   - /Users/source/CS/data:/data 
aa:
  build: ./AA
  command: dev_appserver.py /src/ --host=0.0.0.0 --admin_host=0.0.0.0 --port=8081 --admin_port=9081 --storage_path=/data/
  links:
    - vbc:vbc-local
    - st:st-local
    - elasticsearch:localhost    
  ports:
    - "8081:8081"
    - "9081:9081" 
  volumes:
   - /Users/source/AA/src:/src
   - /Users/source/AA/data:/data 
vbc:
  image: …
Run Code Online (Sandbox Code Playgroud)

docker boot2docker fig docker-compose

12
推荐指数
1
解决办法
5445
查看次数

了解docker撰写中的端口和链接

根据我对docker compose/fig的理解,如果您不想将端口暴露给其他人,则在两个服务/图像之间创建链接是一个主要原因.

像这里db不暴露任何端口,只链接:

web:
  build: .
  links:
   - db
  ports:
   - "8000:8000"   
db:
  image: postgres
Run Code Online (Sandbox Code Playgroud)

Web是否认为db在其localhost上运行?我会从web中的脚本/程序连接到localhost:5432(postgresql的标准端口)来获取数据库连接吗?

如果这是正确的,如何在不暴露的情况下将端口5432更改为6432?我会在另一个端口上运行postgresql吗?

更新:

一些输入之后的有用链接:

http://docs.docker.com/userguide/dockerlinks/

https://docs.docker.com/compose/yml/#links

docker fig docker-compose

9
推荐指数
2
解决办法
9820
查看次数

如何将命令行选项发送到我的"docker-compose up"开始的dockerized程序?

我正在尝试使用docker-compose up您可以使用的方式docker run [APP_CONTAINER_NAME] [APP_OPTIONS].

ubuntu docker fig docker-compose

9
推荐指数
1
解决办法
6233
查看次数