标签: fig

了解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和fig设置mongodb副本集的正确方法是什么?

使用docker和fig设置mongodb副本集的正确方法是什么?

我试图按照官方mongodb教程创建一个fig.yml包含一些副本集的文件,但总是被如何调用rs.initiate()rs.add("<hostname><:port>")正确阻止.

我找到了这个SO的答案,解释了为什么我不能从shell没有打电话的那一切开始rs.initiate(),所以我怎么能实现呢?

哦,我使用mongo:latest(v2.6.5)作为基本图像,没有任何修改.

mongodb docker replicaset fig

7
推荐指数
1
解决办法
1104
查看次数

Docker:如何向容器提供秘密信息?

我的应用程序位于容器内,它正在读取密码和API密钥的环境变量以访问服务.如果我在我的机器上运行应用程序(而不是在docker中),我只是export SERVICE_KEY='wefhsuidfhda98'应用程序可以使用它.

这是什么标准方法?我正在考虑使用一个秘密文件,该文件将通过export命令添加到服务器,然后source在该文件上运行.

我正在使用docker&fig.

docker fig

7
推荐指数
1
解决办法
1262
查看次数

当使用docker/fig运行Django dev服务器时,为什么隐藏了一些日志输出?

我正在编写一个Dockerfile,它需要运行多个命令作为CMD指令的一部分,我认为正确的方法是运行一个带有主守护进程的shell脚本exec.不幸的是,作为该过程的一部分,我的一些输出(stdout?stderr?我不知道,我不知道如何找出)迷失了.

这是shell脚本:

#!/bin/sh

python manage.py migrate
exec python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

这个想法是migrate命令只运行一次并显示其输出,然后runserver命令应该接管并且容器运行直到该进程退出.

实际问题是输出migrate正确显示,但未显示立即输出runserver.奇怪的是,后来的请求记录runserver显示得很好.

澄清一下,这是我预期的输出:

[...]
No migrations to apply.
[...]
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[21/Jan/2015 16:27:06] "GET / HTTP/1.1" 200 15829
Run Code Online (Sandbox Code Playgroud)

这是我得到的fig up:

[...]
No migrations to apply.
[...]
[21/Jan/2015 16:27:06] "GET / HTTP/1.1" 200 15829
Run Code Online (Sandbox Code Playgroud)

我甚至都不确定这是谁的错.runserver命令是否根据其运行方式更改其输出?这有问题exec吗?是docker/fig?

作为一个额外的数据点,我注意到在运行容器时我确实获得了所有输出fig run web,但不是在我这样做时fig up …

django shell exec docker fig

7
推荐指数
1
解决办法
1133
查看次数

Dockerfile与Docker镜像

我正在创建一些用于在开发机器上进行测试的docker镜像.我计划为我们的主应用程序构建一个,以及为每个外部依赖项构建一个(postgres,elasticsearch等).对于主应用程序,我正在努力编写Dockerfile或编译要托管的映像.

一方面,Dockerfile很容易随时间共享和修改.另一方面,我希望在提交新图像之前,在vim中更容易进行高级配置(自定义应用程序属性文件).

我知道我可以得到相同的结果,但我正在寻找PROS,CONS和任何方向的问题.

作为一个方面说明,我计划在所有包装了一起利用.我对这个工具的初步印象非常积极.

谢谢!

virtualization docker fig dockerfile

7
推荐指数
2
解决办法
2872
查看次数

Docker Compose不绑定端口

我的容器有以下Dockerfile:

FROM        centos:centos7

# Install software
RUN         yum -y update && yum clean all
RUN         yum install -y tar gzip wget && yum clean all

# Install io.js
RUN         mkdir /root/iojs
RUN         wget https://iojs.org/dist/v1.1.0/iojs-v1.1.0-linux-x64.tar.gz
RUN         tar -zxvf iojs-v1.1.0-linux-x64.tar.gz -C /root/iojs
RUN         rm -f iojs-v1.1.0-linux-x64.tar.gz

# add io.js to path
RUN         echo "PATH=$PATH:/root/iojs/iojs-v1.1.0-linux-x64/bin" >> /root/.bashrc

# go to /src
WORKDIR     /src

CMD         /bin/bash
Run Code Online (Sandbox Code Playgroud)

我构建这个容器并启动图像docker run -i -t -p 8080:8080 -v /srv/source:/usr/src/app -w /usr/src/app --rm iojs-dev bash.Docker将端口8080绑定到主机端口8080,以便我可以从我的客户端访问iojs-application.一切正常.

现在我想用docker-compose启动我的容器,使用以下docker-compose.yml

webfrontend:
    image: …
Run Code Online (Sandbox Code Playgroud)

docker fig docker-compose

7
推荐指数
2
解决办法
3806
查看次数

使用pycharm调试器调试在docker镜像内运行的django app

我的应用程序在docker镜像中运行(我的开发团队从不在他们的机器中安装软件,只有docker镜像具有依赖关系).

我需要使用pycharm调试器调试一些东西,如何将pycharm的调试器连接到docker image的python?

django debugging pycharm docker fig

7
推荐指数
1
解决办法
5815
查看次数

Docker使用一个终止容器进行组合

我有一个docker compose设置数据库容器,一个应用程序容器和一个容器,它预先加载数据库所需的数据.

我希望启动所有容器,docker-compose up同时预装容器在完成工作后终止exit 0.

但是终止这个容器会使用以下消息完成整个设置:

composesetup_load_1 exited with code 0
Gracefully stopping... (press Ctrl+C again to force)
Stopping composesetup_app_1...
Stopping composesetup_db_1...
Run Code Online (Sandbox Code Playgroud)

在一个docker-compose设置中,有没有办法让多个容器具有不同的生命周期?如果有,怎么样?

exit-code exit docker fig docker-compose

7
推荐指数
1
解决办法
1833
查看次数

如何正确处理Docker容器依赖?

我刚刚开始了解Docker,并考虑用Docker基础架构替换基于VM的基础架构.我想知道如何处理容器之间的依赖关系以及如何确定何时/是否需要重新启动依赖容器,如果需要,如何最小化停机时间.

为了更加精确,我发现了无花果装饰等工具来管理容器和依赖项,所以(如果我很幸运的话)我会得到一个有向无环图,告诉我启动或取下容器的顺序.例如,mongodb容器必须在webserver容器等之前启动.

因此,如果我更新MongoDB或更改某些设置,我想我也应该关闭网络服务器,因为它不能很好地处理数据库不存在.在这种情况下,如何最大限度地减少因关闭和重新启动容器而导致的停机时间,包括重新部署Jetty webapp等?

但是,如果我只是更新我的SMTP服务器(或多或少所有其他容器依赖),我不希望这会触发我的整个容器基础设施的重启.因此,在重新启动邮件服务器容器后,其他容器是否仍能够访问以前链接的端口?

你是如何处理这种情况的?我是否需要/是否可以为每个容器ABC添加一个大使容器ABC_amb,它将永远不会停止并在ABC重新启动时保持连接等?

dependencies admin docker fig

6
推荐指数
1
解决办法
4908
查看次数

如何为微服务构建简化的开发环境

我正在考虑微服务架构,并想知道人们是否有一个良好的开发环境最佳实践.

我的工作假设是每个微服务都将存在于它自己的git存储库中,以实现隔离和易于部署.我还假设每个开发人员都会创建他们正在处理的任何仓库的分支.

我正在考虑的问题出现在你正在处理涉及多个微服务的问题上.例如,存在影响一个微服务的缺陷以及它如何适当地消耗另一个微服务.

假设n个项目涉及缺陷,则必须检查n个git存储库并将它们配置为一起工作.如果它们各自都有Vagratefile和Dockerfile,那么最终会运行n个VM.理想情况下,您只有1个Vagrant VM,每个服务器只是同一个VM中的新Docker实例.

使用git子模块的主repo /项目可以工作.问题是如果我们创建一个通用的主仓库/项目,那么子模块将指向上游而不是开发人员的分支.

我目前正在考虑一个拥有一些配置,流浪汉和无花果的主项目可能会成功.我目前正在考虑实施这种方法的两种方法.

  1. 提供具有一些默认值的配置,即project_1应位于../project_id等
  2. 提供一个脚本,该脚本将根据用户的github帐户创建子模块,这将为用户的fork和上游项目的远程创建远程.

有没有其他人解决这个问题或有一个良好的工作流程?

git github vagrant fig microservices

6
推荐指数
1
解决办法
986
查看次数