问题标签 [docker-compose]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Docker Compose 与 Dockerfile 有什么区别
我一直在阅读和学习Docker,并试图正确选择要使用的 Django 设置。到目前为止,有两种:
我知道在Dockerfiles
中使用了Docker Compose
,但我不确定将所有内容放在一个大型 Dockerfile 中是否是一种好习惯,其中包含FROM
针对不同图像的多个命令?
我想使用几个不同的图像,包括:
请告知使用Docker设置此类环境的最佳实践。
如果有帮助,我在 Mac 上,所以使用boot2docker。
我遇到的一些问题:
- Docker Compose 与 Python3 不兼容
- 我想将我的项目容器化,所以如果一个大型 Dockerfile 不理想,那么我觉得我需要使用 Docker Compose 将其分解
- 我可以使项目 Py2 & Py3 兼容,所以我倾向于 django-compose
apache-spark - boot2docker:通过 Mac OS 上的 Web UI 管理 Spark 工作者的端口
我在我的 Mac 上安装了 boot2docker,并使用 docker-compose 创建了一个 spark 集群。Everthing 工作正常:我运行 boot2docker 并创建 1 个 spark 主节点和 3 个 spark 工作节点。
我连接到 spark master 的 web UI,我可以看到 3 worker 节点。
现在我的问题是:如何连接到工作人员的 Web UI?
我的 Mac 没有通过 http 连接到 worker 的 web UI 节点,使用 master 的 web UI 页面中的 worker id 链接。
linux - Communication between linked docker containers
I have two docker containers in the following setup on a host machine:
- Container 1 - UDP Port 5043 is mapped to host port 5043 (0.0.0.0:5043:5043)
- Container 2 - Needs to send data to Container 1 on port 5043 as UDP.
Scenario 1
- I start Container 1 and obtain it's IP address.
- I use this IP address and configure Container 2 with it and start it.
- Container 2 is able to send UDP data to Container 1 by calling
udp://Container_1_IP:5043
EVERYTHING WORKS!!
Scenario 2
- I start Container 1 by mapping 5043 UDP port to host's 5043 port (
0.0.0.0:5043:5043
) - I link Container 2 and Container 1 using '
--links
'. - Now, when Container 2 invokes the URL
udp://Container_1_IP:5043
, an error is thrown "Connection refused
". - I did verify that I am able to ping the Container 1 from inside the Container 2 using the IP.
Any help to get the Scenario 2 working for me would be really appreciated!!
docker - 当我运行`docker-compose rm`时如何忽略某些容器
我有四个容器,分别是node
、redis
、mysql
和data
。当我运行时docker-compose rm
,它将删除我所有包含容器的容器。我data
的 mysql 数据在容器中,我不想 rm 容器data
。
为什么我必须 rm 那个容器?
有时我必须更改节点和 mysql 的一些配置文件并重建。所以,我必须删除容器并重新开始。
我又用谷歌搜索了一遍,一无所获。
docker - 了解 docker compose 中的端口和链接
根据我对 docker compose / fig 的理解,如果您不想将端口暴露给其他人,那么在两个服务/图像之间创建链接是主要原因之一。
像这里db不公开任何端口,只链接:
web是否认为db在其本地主机上运行?我会从网络中的脚本/程序连接到 localhost:5432(来自 postgresql 的标准端口)以获取数据库连接吗?
如果这是正确的,您如何将端口 5432 更改为 6432 而不暴露?我会在不同的端口上运行 postgresql 吗?
更新:
一些输入后有用的链接:
docker - 将 docker-compose 与 CI 结合使用 - 如何处理退出代码和守护程序链接容器?
现在我们的 Jenkins 代理为我们的每个 Rails 项目生成一个 docker-compose.yml,然后运行 docker-compose up。docker-compose.yml 有一个主“web”容器,其中包含 rbenv 和我们所有其他 Rails 依赖项。它链接到包含测试 Postgres 数据库的数据库容器。
当我们需要实际运行测试并生成退出代码时,问题就来了。仅当测试脚本返回出口 0 时,我们的 CI 服务器才会部署,但 docker-compose 始终返回 0,即使其中一个容器命令失败。
另一个问题是 DB 容器无限期地运行,即使在 Web 容器完成运行测试之后,docker-compose up
也永远不会返回。
有没有办法我们可以在这个过程中使用 docker-compose?我们需要能够运行容器,但在 Web 容器完成后退出并返回它的退出代码。现在,我们使用 docker 手动启动 DB 容器并使用 --link 选项运行 Web 容器。
postgresql - Docker-compose 环境变量
我正在尝试设置一个 postgres 容器并希望使用以下命令设置 postgres 登录:
所以我像这样创建了 docker-compose.yml
我还尝试了环境变量的其他语法,将 db 部分声明为:
但是,这些选项似乎都不起作用,因为无论出于何种原因,每当我尝试使用各种连接字符串连接到 postgres 数据库时:
他们都给了我身份验证失败,而不是抱怨没有用户数据库。
ruby-on-rails - Docker Compose:向链接服务公开环境变量
我正在使用 Docker Compose 来制作一个运行带有 Oracle 后端的 Rails 应用程序的容器。
Dockerfile 和 docker-compose.yml
在我的 Docker 容器尝试安装 ruby-oci8 gem 之前,这非常有效,它会查找一些特定于 oracle 的环境变量。
这些变量暴露在 oracle 容器的 Dockerfile 中:
问题是,如何将 oracle 容器上的这个环境变量暴露给 web 容器?
docker - Compose:运行一个退出的容器
我有一个带有 postgres 的 docker-compose.yml 和一个网络应用程序(ghost)。我想在 postgres 和 ghost 之间运行一个容器来初始化 postgres,添加数据库和用户权限,然后退出。
我的数据库初始化代码如下所示:
依次运行
我知道我可以扩展 postgres 以添加此功能,但我宁愿将这两个问题分开。所以我有两个问题:
初始化数据库是否有更好的模式?是否可以运行在 postgres 和 ghost 之间退出的容器?
完整的存储库可以在这里查看:https ://github.com/devpaul/ghost-compose
docker - 默认情况下未启用容器监控
我们想监控 docker 容器指标参数,如 CPU、网络、内存等。我们关注https://docs.docker.com/articles/runmetrics/,发现默认情况下未启用监控指标。
根据文档,我们必须通过设置内核参数来启用监控。
内存指标:memory.stat
内存指标可在“内存”cgroup 中找到。请注意,内存控制组会增加一点开销,因为它对主机上的内存使用情况进行了非常细粒度的统计。因此,许多发行版选择默认不启用它。通常,要启用它,您所要做的就是添加一些内核命令行参数:cgroup_enable=memory swapaccount=1
任何人都知道如何在 docker 容器(Dockerfile 或 docker-compose.yml)中设置内核参数。
提前致谢。