Tag: python

返回从subprocess调用的bash脚本的代码

我正在写一个脚本,将一堆数据导入到一个couchdb数据库,问题是每个db需要大约15分钟,所以我不看整个事情,因为我有平均20分贝导入。 脚本通过一系列项目循环,然后调用每个subprocess,以便在进入下一个之前运行导入。 我试图做的是通过失败的脚本捕获任何不正确加载的数据库。 我试图抓住这个时,返回码不是0,问题是我只能得到调用docker命令的subprocess的返回码,而不是如果脚本正确执行。 #!/usr/bin/python import sys import subprocess cities = ["x","y", "z"]; uncompletedcities = [] for x in cities: dockerscript = "docker exec -it docker_1 ./node_modules/.bin/babel-node –debug –presets es2015 app/exportToCouch %s %s" % (x,x) p = subprocess.Popen(dockerscript, shell=True, stderr=subprocess.PIPE) error = p.communicate() if p.returncode != 0: uncompletedcities.append(x) while p.poll() == None: print p.stderr.read() print […]

无法从外部连接到运行CherryPy服务器的Docker容器

我有一个简单的CherryPy服务器在Docker容器上运行,我无法在外部访问它。 我运行它使用docker run -p 8181:8181 image-name 。 它启动得很好,我看到正常的服务器日志。 如果我从容器中尝试curl( curl localhost:8181 ),我得到“Hello World”响应。 如果我从我的机器尝试它,我得到curl: (52) Empty reply from server 。 我究竟做错了什么? 有没有我错过的configuration? 服务器代码: import cherrypy class HelloWorld(object): @cherrypy.expose def index(self): return "Hello World!" cherrypy.quickstart(HelloWorld(), '/', {'global': {'server.socket_port': 8181}}) Dockerfile: FROM python:2.7.13 RUN mkdir -p /opt/server WORKDIR /opt/server ADD . /opt/server VOLUME /opt/server RUN apt-get update […]

backports / lzma / _lzmamodule.c:115:18:致命错误:lzma.h:没有这样的文件或目录

我正在尝试安装docker-registry。 我被困在这之后: $ apt-get install python-pip python-dev $ pip install -r requirements.txt […] backports/lzma/_lzmamodule.c:115:18: fatal error: lzma.h: No such file or directory 我下载的docker-registry是v0.6.7

在Docker容器中运行Flask应用程序

我已经构build了一个包含一个简单的Flasktesting应用程序的Docker镜像: from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "Hello World!" if __name__ == "__main__": app.run(debug=True,host='0.0.0.0') 使用Dockerfile : FROM ubuntu:latest RUN apt-get update -y RUN apt-get install -y python-pip python-dev build-essential COPY . /app WORKDIR /app RUN pip install -r /app/requirements.txt ENTRYPOINT ["python"] CMD ["app.py"] Docker镜像是使用docker build -t flask-app . 并已成功创build: $ […]

Nvidia Theanodocker图像不可用

试图运行docker命令: nvidia-docker run -d -p 8888:8888 -e PASSWORD="123abcChangeThis" theano_secure start-notebook.sh # Then open your browser at http://HOST:8888 取自https://github.com/nouiz/Theano-Docker 返回错误: Error: image library/theano_secure:latest not found 出现theano_secure图片目前不可用? searchtheano_secure: $ nvidia-docker search theano_secure:latest NAME DESCRIPTION STARS OFFICIAL AUTOMATED 这个命令的返回是空的,所以图像不可用? 如果有的话,是否有另一种来自NVIDIA的Theanodocker图像? 更新: 从源头build设: docker build -t theano_secure -f Dockerfile.0.8.X.jupyter.cuda.secure . 返回: Err http://developer.download.nvidia.com Release.gpg Unable to connect to developer.download.nvidia.com:http: […]

如何将django连接到docker redis容器?

我正在尝试将django连接到docker redis容器 这是我的docker文件 FROM ubuntu:14.04 RUN apt-get update && apt-get install -y redis-server EXPOSE 6379 ENTRYPOINT ["/usr/bin/redis-server"] 这是docker ps -a的结果 4f7eaeb2761b /redis "/usr/bin/redis-serve" 16 hours ago Up 16 hours 6379/tcp redis 这是一个快速的完整性检查,redis在docker容器中工作 docker exec -ti redis bash root@4f7eaeb2761b:/# redis-cli ping PONG root@4f7eaeb2761b:/# redis-cli 127.0.0.1:6379> exit 这是我的Django settings.py CACHES = { 'default': { 'BACKEND': 'redis_cache.RedisCache', 'LOCATION': […]

Docker – Elasticsearch – 无法build立新的连接: Connection refused',))

我正在使用docker-compose在Linode服务器中运行python flask app和elasticsearch服务。 这是我的docker-compose.yml version: '2' services: elasticsearch: build: config/elastic/ ports: – "9200:9200" – "9300:9300" environment: ES_JAVA_OPTS: "-Xms1g -Xmx1g" networks: – docker_lr web: build: . ports: – "8000:8000" networks: – docker_lr depends_on: – elasticsearch networks: docker_lr: driver: bridge 这里是elasticsearch Dockerfile FROM elasticsearch:5 ENV ES_JAVA_OPTS="-Des.path.conf=/etc/elasticsearch" CMD ["-E", "network.host=0.0.0.0", "-E", "discovery.zen.minimum_master_nodes=1"] 这是用于Web的Dockerfile https://github.com/mysticmode/LibreRead/blob/master/Dockerfile 这两个服务正在运行,我可以用我的:8000和:9200在浏览器中检查 但我无法连接到弹性search:9200从我的Python应用程序代码。 r = […]

在Pythonsubprocess中的Docker中运行交互式命令

当我在交互模式下使用docker run时,我能够运行我想testing一些python的命令。 root@pydock:~# docker run -i -t dockerfile/python /bin/bash [ root@197306c1b256:/data ]$ python -c "print 'hi there'" hi there [ root@197306c1b256:/data ]$ exit exit root@pydock:~# 我想从Python使用subprocess模块自动化,所以我写了这个: run_this = "print('hi')" random_name = ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(20)) command = 'docker run -i -t –name="%s" dockerfile/python /bin/bash' % random_name subprocess.call([command],shell=True,stderr=subprocess.STDOUT) command = 'cat <<\'PYSTUFF\' | […]

VirtualBox内存exception – 使用TensorFlow和Docker的std :: bad_alloc

我有一个Python应用程序,我正在使用TensorFlow,并在Docker容器中运行它。 在本地运行时,我看到内存使用情况仍然低于4GB的RAM,但是有一些大文件正在写入和处理。 当TensorFlow达到创build它的第一个检查点文件时,我得到以下exception: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc 我的模型很复杂,所以这个文件可能大于1GB,而且我的数据是图像,所以我已经下载了大约30GB的数据,只是为了开始运行模型,所以我不知道这是否偶然发生在这里或如果这个文件实际上太大了。 我只是将一小批图像加载到内存中进行每个时代的模型训练,所以我试图保持内存使用率低。 我的VirtualBoxconfiguration看起来像这样: 错误似乎是使用C ++,所以我认为它来自内部的TensorFlow代码。 有没有人看到过这样的事情,或者知道我能改变什么? 我觉得有足够的RAM分配,但也许我的磁盘访问configuration不正确?

为什么“docker-compose run”在容器外创build文件?

我是Docker的新手,我正在学习Docker及其官方文档。 在一个教程中 ,它解释了如何使用Docker创build一个Django项目。 我不明白的是下面的命令。 docker-compose run web django-admin.py startproject composeexample . 该文件说,它将在一个容器内创build一个Django项目,这些新创build的文件将在本地文件系统。 我的问题是,为什么这些新创build的文件将在本地系统,如果它们在一个容器中创build?