我想在EC2主机内使用docker-compose
部署应用程序。
出于本问题范围以外的原因,其中一个服务将使用常量docker标记,如myrepo/myimage:stable
。
图像将定期更新(相同的标记,不同的hash
),因此我需要运行docker-compose pull&&docker-compose up-d
。
我的问题是,是否有一种公开docker-compose
的API的方法,以便可以使用对EC2实例的API调用来调用它,从而避免必须ssh到计算机中。
Compose本身没有API,它只是一个本地命令行工具。您需要使用ssh之类的东西,或者通用的系统自动化工具(如Ansible或Salt Stack)来调用它。
Amazon托管的容器集群系统确实有网络可访问的API。如果使用EKS,则可以使用Kubernetes API更新部署规范的映像:
。Amazon专有的ECS系统有一个不同的API,但是您可以使用它远程更新映像名称,而不必直接访问html" target="_blank">底层节点。
在所有情况下,如果您可以在每个构建中使用唯一的标记,您将会更好。在Compose设置中,您可以通过环境变量提供这一点
image: myrepo/myimage:${TAG:-stable}
ssh root@remote-host TAG=20210414 docker-compose up -d
特别是在Kubernetes/EKS上下文中,更改image:
值以强制更新(或降级!)是很重要的;如果您告诉Kubernetes您希望运行一个带有stable
标记的Pod,并且它已经有了一个,那么它不会改变任何事情。
我有一个docker应用程序,我使用以下docker compose。yml运行它: 我有一个没有docker化的服务器在我的机器上运行,我可以通过访问它。我希望我的服务能够访问它。 我发现有人建议在我的服务配置中添加以下内容: 但是当我添加这个时,并尝试,我得到。当我尝试<code>curl时,也会出现同样的错误http://host.docker.internal:3000。 我拼命地尝试将端
https://github.com/confluentinc/cp-docker-images/blob/5.0.0-post/examples/kafka-cluster/docker-compose.yml 我已经编辑了该文件,并将选项添加到docker组合文件中,以便可以在主机之外访问它们。 我已经运行了以下命令: kafka-1、kafka-2、kafka-3的docker日志(均相同)
问题内容: 我有一台具有分配给一个网络接口的多个IP地址的主机。我想配置Docker,以使容器将每个容器“响应”到分配给主机的这些IP地址的单个IP。 可以使用libcontainer完成此操作,还是必须使用LXC驱动程序并使用来运行我的容器? 提前致谢。 更新 我希望每个容器都可以从外面拿到。使用默认Docker配置时,我只能暴露端口并不能通过到达容器。可以以某种方式配置第二个选项吗? 问题答案
我在本地机器(Mac)上工作,其中有一个名为sqlvm的遗留虚拟机(这意味着我可以通过http://sqlvm:从本地主机访问这个虚拟机)。现在,我在应该连接到vm的同一个本地主机(我的Mac)中设置了几个docker容器(使用docker-compose)。< code>pymysql会引发一个异常: 如何将外部的“sqlvm”公开给内部 Docker 网络? 编辑:我尝试在yml文件中为相关容
我有一个docker compose文件,看起来像: 运行之后,我看到所有的服务都启动了,并且看起来工作良好。我的服务使用以下sqlalchemy连接字符串连接到postgres: 编辑:这是在接受的解决方案中的一个评论中回答的,但我认为值得在这里指出:我已经在本地运行postgres,这引起了各种混乱。 删除我的本地postgres实例并更新我的hosts文件,就像接受的答案中提到的那样,一切都
问题内容: 如果我在某个主机上运行mysql数据库,并且该主机也正在运行docker容器:我如何从主机上运行的docker容器中访问mysql数据库? 例如,是否有一种方法可以将主机端口发布到容器(与docker run -p的作用相反)? 问题答案: 关于如何以一致的,易于理解的和可移植的方式执行此操作的问题已有很长时间的讨论。尚无完整的解决方案,但我会将您链接到下面的讨论。 无论如何,您都想尝