问题标签 [docker-stack]
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.
php - 在容器启动时运行 symfony 控制台
我正在寻找一种方法,在启动 docker 容器后执行 symfonys 控制台,例如数据库迁移。我正在使用 alpine php-fpm image,它的 Dockerfile 末尾有以下命令:
当我尝试在我的 docker-compose 文件中覆盖它时,php-fpm 不会启动或 symfony 控制台命令不会运行。理想情况下,执行应等待几秒钟,以确保数据库已启动。
对于这种情况,什么是好的解决方案?
docker - 一起停止、升级、启动所有 Docker Stack 服务?
我想停止docker-stack.yml
文件中的所有服务,使用新的映像版本号更新文件,然后启动所有服务。为了一起升级它们,以便它们始终都是最新版本。
我该怎么做呢?我宁愿不删除网络和卷——我的意思是,这docker stack rm
似乎有点矫枉过正?并且docker service scale service-name=0
感觉容易出错?然后需要记住再次更改回> 0。
我想做一个停止一切升级的原因是它更简单:我的应用程序中的服务不需要与彼此不同版本的 API 兼容。永远不会有版本 X 的服务正在运行并且必须与另一个服务的版本 X - 1 通信(相反,所有服务都将使用相同的版本 X。它们使用相同的版本号)。
(如果我问错了问题,请随时告诉我 :- ) 注意:在这种特殊情况下,20 - 30 秒的停机时间是可以的,因为所有容器都会立即停止-升级-重新启动。这适用于 Docker Swarm / Stack,而不是 Docker-Compose(然后可以只做down
and up
)。)
docker - 如何为其他 Docker 容器和堆栈制作 Docker VPN 网关?
我们正在将 CI 基础设施实现为 Docker 堆栈。
堆栈中的一些容器现在需要访问外部服务,这些服务只能通过 OpenVPN 连接获得,比如说在192.168.2.0/24
子网上。
为了使容器尽可能“单一用途”,我们理想情况下希望添加一个 Docker 容器作为 VPN 网关,其他容器可以通过它与192.168.2.0/24
子网通信。
这首先引发了一个复杂问题:VPN 客户端容器需要cap-add
of NET_ADMIN
,这在我们用于部署堆栈的 swarm 模式中不可用。除了将 VPN 客户端容器作为独立启动之外,是否有解决方法docker run
?
更重要的是,一旦我们vpnclient
运行并连接了容器,我们如何配置 swarm 中的其他容器以实际使用它作为网关来访问子网上的所有 IP 192.168.2.0/24
?
docker - Docker Swarm 模式错误:将两个工人加入一个经理
我很难建立一个由两名工人和一名经理组成的 Docker Swarm。一切正常,直到我添加第二个工人。添加第二个工人后,第一个工人的守护进程进入某种错误状态,其中一个简单的docker version
产量
另外,我正在使用 Stack YAML 来启动三个 Redis 服务。
堆栈.yaml
我在 Windows Server 2016 上运行 Docker CE 18.09.0(EE 有同样的问题)此外,我所有的工作节点都在 Windows 平台上,使用 Linux 容器。(我的管理器节点是相同的,但由于问题 #3031而使用 Windows 容器)
在专有 Windows 环境中甚至支持设置多节点群吗?如何使用上面列出的环境设置此集群?
spring-boot - Docker 服务副本无法访问
当我在下面跑时
我可以使用 curl 或任何浏览器(localhost:4000)从我的自定义 spring boot rest 端点获得响应,因此很明显 0.0.0.0:4000->1967/tcp端口映射按预期工作。
但是,当我在下面运行时
我无法访问任何容器,因此 localhost:4000 没有响应,并且容器在初始启动后立即重新启动。
我已经在选项 1 和选项 2 的所有容器中运行 netstat 命令。在选项 2 中,我可以看到端口 1967 正在被监听,但在选项 2 中,有一些随机端口(我猜,这是正常的,因为这些端口发布自己到 1967 年应用负载平衡)
堆
Dockerfile
码头工人-compose.yml
有谁知道这里有什么问题?每个选项之间有什么区别?
docker - 我可以使用/构建自定义创建的 docker 镜像来创建另一个镜像吗?
我想在一个实例/服务器中创建一个图像 A,但在那个实例中没有互联网连接。
那么我可以创建一个包含所有安装在我的机器上的包的图像 B,然后推送到 xxxx 并在图像 A 中使用它作为 FROM 标记吗?
它看起来像:
请为此问题提出正确的解决方案。
postgresql - 当 docker 脚本中的 Python 连接到堆栈中的 SQL 服务器时出现问题
我有一堆单独运行良好的堆栈(至少我认为它确实......)。它有一个在端口 5432 上工作的 postgresql 和一个在端口 80 上的 web 服务器。可以从外部正确访问 web 服务器。
对于单元测试,我仅以堆栈模式运行数据库端:
然后,单元测试首先连接到另一个简单 python 容器中的数据库:
连接时测试脚本失败:
和:
但只有当我在容器内运行它时它才会失败。从外面看,它就像一个魅力。我还尝试设置一个外部网络并使用它(相同的 docker 节点):
显然,我预计从网络外部访问数据库比从内部访问数据库更困难,所以很明显,我在这里错过了一些东西,但我不知道是什么......
docker - 不同堆栈和网络上的 Docker 容器相互通信
在我的微服务架构应用程序中,我想添加 Sleuth 和 Zipkin 服务器(来自 Docker Hub 的图像)。在本地一切正常 - 每个微服务都将数据发送到 Zipkin 服务器。当我在服务器上部署所有微服务时,问题更加复杂 - Zipkin Web UI 是空的 - 没有任何痕迹。
在 application.properties 中,我们可以显式设置 Zipkin 服务器的 url:spring.zipkin.base-url: http://10.0.44.1:9411/
- 我正在使用搬运工
- 我所有的微服务都在网络 X1 的堆栈 X 中
- Zipkin 在堆栈 Y 中,在网络 Y1 中。
我认为所有容器都可以在不同的堆栈/网络中相互通信,但事实并非如此。我应该怎么做才能发布我的 Zipkin 服务器/容器以供所有堆栈/网络中的所有容器使用?
有没有可能使用 Portainer 来做到这一点?
先感谢您
docker-compose - ldap 客户端容器适用于 docker run 但不适用于 docker-compose 或 docker-stack
案例 1:经典 docker run
与env-file
:
使用以下命令运行 docker:
进入泊坞窗
==> 工作,然后我可以访问我的 ldap
案例 2:使用 docker-compose
与docker-compose.yml
:
运行 docker-compose :
进入泊坞窗
==> 不起作用,然后我无法访问我的 ldap
案例 3:使用 docker-stack
同上docker-compose.yml
。
使用以下命令运行 docker-stack:
像上面一样进入容器
==> 不起作用,然后我无法访问我的 ldap
提示:
- 在来自
compose
&的两个容器上,stack
我得到了我的环境变量。 - 这看起来我无法
ldap://XX.XX.XXX.XXX:389
从他们那里得到。
docker - Consul 集群堆栈配置
我正在尝试构建 Consul 集群堆栈。我当前的配置工作正常,但是在重新启动领事领导或全栈后,集群在投票给新领导时出现问题。
服务重新启动后,新任务对于相同的节点 ID 具有不同的 IP 地址。
领事代理配置是否有任何参数可以修复集群中的地址更改?
在我当前的堆栈定义之下