Tag: 无花果

图没有链接两个容器

长话短说:当docker run时, fig up并没有正确地链接2个容器。 场景: 有两个容器:一个是Cassandra,另一个是客户服务。 当容器启动时,Client期望在hosts文件中拥有cassandra主机名,并且能够到达它的9042端口。 我使用docker的链接紧凑的容器在一起。 这是一个fig.yml : cassandra: image: "myrepo/cassandra" ports: – "7199:7199" – "9042:9042" – "9160:9160" – "61621:61621" – "2222:22" hostname: cassandra client: image: myrepo/client links: – cassandra ports: – "8098:8098" – "8099:8099" hostname: client 当我做fig up client ,无花果开始cassandra,然后客户端,但客户端无法到达cassandra容器(它可以ping它,但不能到达9042端口)。 但是,如果我用fig up cassandra开始cassandra然后运行: docker run –link tramm_cassandra_1:cassandra –link tramm_cassandra_1:cassandra_1 –link tramm_cassandra_1:tramm_cassandra_1 -p […]

如何在Docker中设置Zookeeper的dataDir(fig.yml)

我已经为Dockerconfiguration了一个fig.yml文件中的Zookeeper和Kafka容器。 两个容器都能正常工作 但是在发送了一些消息之后,我的应用程序/ zk-client挂起了。 在检查zookeeper日志时,我看到错误: Error Path:/brokers Error:KeeperErrorCode = NoNode for /brokers 我的fig.yml如下所示: zookeeper: image: wurstmeister/zookeeper ports: – "2181:2181" environment: ZK_ADVERTISED_HOST_NAME: xx.xx.x.xxx ZK_CONNECTION_TIMEOUT_MS: 6000 ZK_SYNC_TIME_MS: 2000 ZK_DATADIR: /path/to/data/zk/data/dir kafka: image: wurstmeister/kafka:0.8.2.0 ports: – "xx.xx.x.xxx:9092:9092" links: – zookeeper:zk environment: KAFKA_ADVERTISED_HOST_NAME: xx.xx.x.xxx KAFKA_LOG_DIRS: /home/svc_cis4/dl volumes: – /var/run/docker.sock:/var/run/docker.sock 我已经search了很长一段时间,但我还没有得到解决scheme。 我也尝试使用ZK_DATADIR设置fig.yml中的数据目录:'/ path / to / zk / data / […]

如何将模块目录导入到Pythonpath,这是从子文件夹到原始源的符号链接?

我正在尝试运行docker容器child1和child2。 可以说我们有: 更新 |parent |—–|child1/ src_folder/ __init__.py mod1.py |—–|child2/ __init__.py symlink_target_folder mody.py test1_dir/ smfile.py 我做了类似的事情 ln -rs ~/parent/child1/src_folder ~/parent/child2/symlink_target_folder 在mody.py当我这样做, from symlink_target_folder import mod1 有用; 但从我test1_dir> smfile.py from .child2.symlink_target_folder import mod1 它会抛出ImportError。 我想知道如何从该目录访问相同的模块? 可以将symlink_target_folder导出到PYTHONPATH中。 我已经做好了 export PYTHONPATH = $ PYTHONPATH:/ symlink_target_folder 这样`我可以从mody.py做到 from symlink_target_folder.mod1 import SmFoo 但我不认为它是由于PYTHONPATH。 只是symlink_target_folder和mody.py在同一个文件夹中。 我如何解决这个问题? 什么是解决这个问题的更好方法? 我确实检查了这一点

如何用fig恢复postgres数据库?

我试图使用图( http://www.fig.sh/ )的Django应用程序。 我不能从转储重新创build数据库,我尝试: fig run db pg_restore -d DBNAME < backup.sql 并得到: socket.error:[Errno 104]由对等方重置连接 但是这个运行(仍然没有看到数据库中的表): fig run db pg_restore < backup.sql 这是dockerfile: FROM python:3.4 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ ADD backup.sql /code/ RUN pip install -r requirements.txt RUN pg_restore -d postgres backup.sql ADD . /code/ 和fig.yml: db: image: […]

在Windows上创builddocker容器

因此,启动并运行boot2docker,以及从Docker Hub中取出容器在Windows环境中是没有问题的。 但是,如果我想创build一个容器并运行它,那我该怎么去做呢? 我读过关于使用无花果,但通过Windows或从容器安装无花果? 我试图从容器中做到这一点,但它通常会导致权限错误,甚至CHOWNing文件夹不能解决无法在容器中调用无花果的问题。 是否可以通过Windows上的Boot2Docker作为开发环境运行docker? 或者我应该使用Vagrant作为宿主虚拟机,并在其中使用一堆Docker容器? 只是一些澄清和方向将不胜感激。

Docker组成环境和path

我正在尝试使用Docker Compose创build本地开发环境。 我开始使用这个例子https://github.com/b00giZm/docker-compose-nodejs-examples/tree/master/03-express-gulp-watch ,它就像一个魅力。 那里没问题。 但是这个例子中的结构太简单了,不适合我的需求。 我打算在生产环境中运行我的应用程序,所以我还需要一些其他的configuration文件。 这大致是我改变了上面的例子: application app bin public routes views app.js gulpfile.js package.json vm coreos (production configs here) docker (development configs here) app Dockerfile docker-compose.yml Dockerfile的实际应用在那里,因为我想使用单独的dockerfiles进行生产和开发使用。 我也改变了我的docker-compose.yml到这个: web: build: app volumes: – "../../app:/src/app" ports: – "3030:3000" – "35729:35729" 在这个“docker-compose build”之后,“docker-up up”就没有了。 我得到一个错误,说gulpfile无法find。 在我的逻辑中,这是因为卷挂载,他们不工作父目录,我假设。 任何想法我做错了什么? 或者我也有这个情况的例子,请分享一下。

撰写:运行退出的容器

我有一个docker-compose.yml与postgres和一个web应用程序(鬼)。 我想在postgres和ghost之间运行一个容器来初始化postgres,添加一个数据库和用户权限,然后退出。 我的数据库初始化代码如下所示: ghostdb: extends: file: ./compose/ghost.yml service: ghostdb links: – postgres volumes: – ./ghost-db/volumes/sql:/sql 反过来运行 #!/bin/bash echo Importing SQL until pg_isready -h postgres; do sleep 1 done for f in /sql/*.sql; do echo Importing $f psql -h postgres -f $f done 我知道我可以扩展postgres来添加这个function,但我宁愿将这两个问题分开。 所以我有两个问题: 有初始化数据库的最佳模式? 可以运行一个在postgres和ghost之间退出的容器吗? 完整的存储库可以在这里查看: https : //github.com/devpaul/ghost-compose

如何从我的VM boot2docker容器内连接到“真正的”本地主机?

Amazon AWS不允许ElastiCache / Redis实例在EC2实例之外访问(在我的笔记本电脑之外)。 所以为了开发的目的,这意味着我的docker集装箱需要引用在本地Mac上运行的Redis实例。 但是,如何将在本地主机上运行的6379上的redis服务器映射到我的boot2docker容器中? 我不知何故需要告诉boot2docker路由一些像my_real_localhost这样的域到我的VM之外的127.0.0.1。

Docker / Boot2Docker / Fig + RabbitMQ主机问题; pika.exceptions.AMQPConnectionError:名称或服务未知

我刚开始学习RabbitMQ和Docker / Fig。 我有一个非常简单的例子,有3个无花果容器,兔子服务器,生产者和消费者各一个。 在/etc/hosts我将boot2docker ip设置为boot2docker ip的别名: /etc/hosts 192.168.59.103 dockerhost 当我findRabbitMQ服务器时,一切都按照原样进行。 我可以打开浏览器并转到dockerhost:PORTNUM并访问RabbitMQ控制面板。 在我的RabbitMQ生产者中,我将连接主机设置为dockerhost : /producer.py connection = pika.BlockingConnection(pika.ConnectionParameters( host=config['RabbitMQ']['hostname'], … )) 我的configuration文件看起来像这样: /config.ini [RabbitMQ] hostname = dockerhost 然而,当我在RabbitMQ生产者上运行fig up -d ,我收到一个连接错误: rabbitworker_1 | File "/usr/local/lib/python3.4/site-packages/pika/adapters/blocking_connection.py", line 301, in _adapter_connect rabbitworker_1 | raise exceptions.AMQPConnectionError(error) rabbitworker_1 | pika.exceptions.AMQPConnectionError: [Errno -2] Name or service not known` 通过将boot2docker ip直接inputRabbitMQ主机名而不是dockerhost别名,我可以使RabbitMQ生产者正常工作: […]

使用docker-compose(以前的图)链接一个cron图像

我使用docker-compose(之前的图)像这样在docker中运行一个简单的rails应用程序: 泊坞窗,compose.yml db: image: postgres volumes: – pgdata:/var/lib/postgresql/data web: build: . command: bundle exec rails s -b 0.0.0.0 volumes: – .:/usr/src/app ports: – "3011:3000" links: – db Dockerfile FROM rails:onbuild 我需要运行一些定期的维护脚本,比如数据库备份,pingsearch引擎的站点地图等。 我不想在我的主机上使用cron,因为我更喜欢保持应用程序的可移植性,我的想法是使用docker-compose来链接一个图像,例如https://registry.hub.docker.com/u/ hamiltont / docker-cron /使用docker撰写。 rails官方镜像没有启用ssh,所以我不能只有cron容器ssh进入web容器并运行脚本。 docker-compose有一个方法让容器获得一个shell到一个链接容器来执行一些命令吗?