问题标签 [docker-container]
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 os 容器与应用程序容器
我不确定使用 docker 容器的最佳实践是什么。当我使用虚拟机(比如 ubuntu)来运行 Web 应用程序时,我会安装运行应用程序所需的所有软件,例如数据库、Web 服务等,并像独立操作系统一样使用。
但是,可以以不同的方式使用 Docker。
给定一个我想运行 Web 应用程序的场景,我有两个选择:
在一个容器上安装所有软件;安装数据库、java 和所有其他运行所需的软件(即像我使用 VM 一样使用)。
将每个应用程序安装在单独的容器上;一个容器中的数据库,另一个容器中的 Web 服务,并使它们相互通信。
选项 1) 似乎更容易部署全栈应用程序,但如果包之间存在一些依赖复杂问题或将操作系统资源分配给每个软件,则可能更难扩展。
选项 2) 似乎更难部署,但每个容器都可以升级而不会带来太多痛苦。
Docker 用户的常见做法是什么?
.net - Docker 和 Octopus Deploy 有什么区别
一段时间以来,我一直在使用 Octopus Deploy,只是为了将 Web 应用程序部署到 AWS EC2 实例上。我知道 Octopus Deploy 是特定于 .NET 的,与 Docker 相比,学习曲线非常容易。我知道使用 Docker 的目的之一是创建容器,而不是使用管理程序运行来创建虚拟机。
但我的问题是使用 Docker 而不是 octopus deploy 的真正原因是什么?这更适合部署应用程序。他们做不同的事情吗?
networking - 带有 Docker 的终端 Compose with Links
我想在一个桥接网络下将三个服务(db、nginx 和 web 服务)链接在一起,并且能够从我的本地主机或容器内部访问不同的服务,并有一个用于 web 服务的交互式终端。我怎样才能做到这一点?
我的 docker-compose 配置如下:
Web 服务使用mhart/alpine-node:6.7.0
作为基础,并进一步添加了一些实用程序以及 Python3.5 和 Flask。
如果我这样做docker-compose run web
,我可以访问交互式终端,但是 db 和 nginx 服务没有正确启动/链接。我得到以下输出:
然后来自容器内部的进一步网络取证发现 nginx 或 db 都不存在。我可以进一步支持这一说法,因为使用docker-compose up
实际上为我的主机系统上安装了 mysql 的 db 服务创建了端口冲突,它从未报告过docker-compose run
.
另一方面,如果我尝试docker-compose up
,我会得到更活跃的跟踪,但没有交互式终端:
我可以做些什么来实现交互式终端和我的三个容器的正确链接?
docker - 无法启动容器:[8] 系统错误:exec:“up3”:$PATH 中找不到可执行文件
我是 Stack Overflow 的新手,我在 Stack Overflow 中检查了类似的问题,但没有找到我期望的答案。所以希望我的问题不会太傻。创建容器后,我无法启动它。我使用命令:docker start 6069dba3cb02
并收到以下错误消息:
容器信息如下:
即使我使用其他命令:“ docker restart 6069dba3cb02
”或“ docker run ubuntu:14.04 up3
”,我仍然得到错误
Docker 信息:操作系统:Boot2Docker 1.8.0 (TCL 6.3);安装路径:https ://github.com/boot2docker/windows-installer/releases
bash - 从 Docker 容器 A(在 Docker 容器 B 上)运行 Bash 脚本
我通过 Docker Compose 文件配置了两个 Docker 容器。
- Docker 容器 A - (teamcity-agent)
- Docker 容器 B - (构建工具)
两个启动都很好。但作为 TeamCity 构建过程的一部分 - 我希望代理(容器 A)运行 Docker 容器 B 上的 bash 脚本(只有 B 可以运行此脚本)。
我尝试使用 Team City 中的 SSH 构建步骤进行设置,但连接被拒绝。
进一步阅读它表明容器中没有启用 SSH,我不应该真的尝试 SSH 进入容器。
那么如何让容器 A 在容器 B 上运行脚本并在 A 上查看脚本的输出呢?
对此的最佳做法是什么?
docker - 所有 docker 网络的端口都不通用吗?
我创建了两个 docker 网络
网络
/li>内部网络
/li>
在创建 docker 容器时我使用chnetwork,
后来我改为内部网络并断开容器与chnetwork
现在的问题是docker ps命令不显示该容器的端口,我的意思是端口在internal-network中不可访问。
当我将网络更改为chnetwork时,只有docker ps显示端口。在所有 docker 网络中都可以访问端口,我需要做什么?
c# - 如何检查本地 URL 是否可访问
我在本地机器上部署 docker 容器。我检查它们是否已成功部署的方法是转到我的浏览器并键入http://192.168.99.105:7474/browser
. 我想以编程方式执行此操作,因此我遵循了此问题Check if a url is reachable - Help in optimization a Class 中的代码。但是,当我尝试时,我得到一个System.Net.WebException {"The remote server returned an error: (504) Gateway Timeout."}
.
它工作正常,HttpStatusCode.OK
如果网址是https://en.wikipedia.org/wiki/YouTube
这是我的代码:
编辑:我的 docker-compose.yml 文件
amazon-web-services - 如何使用 AWS CloudFormation 模板将 AWS S3 存储桶映射到 AWS ECS 上的容器?
我正在使用 Asterisk 在 Linux 上进行 VOIP 项目。我们当前的目标是让几台 EC2 机器在每台机器上运行一个 Asterisk 容器,并且我们希望能够拥有开发、登台和生产环境。为此,我正在编写一个 CloudFormation 模板来使用 AWS-ECS。我的问题是我找不到将 AWS-S3 存储桶映射到容器卷的正确方法。我想使用 2 个不同的桶。一种用于将 Asterisk 配置文件注入所有容器。另一个用于保存所有容器的语音消息和日志。
谢谢,
PS 我已经在 AWS-ECR 上推送了我的 Asterisk 图像,并在 TaskDefenition 中引用了它。我在那里看到了 MountPoints 和 Volumes,但它们似乎不是我的解决方案。
docker - 自动崩溃时重启 Docker 容器
如果容器自动崩溃,我想重新启动它。我不知道该怎么做。我有一个脚本 docker-compose-deps.yml,它有 elasticsearch、redis、nats 和 mongo。我在终端中运行它来设置它:docker-compose -f docker-compose-deps.yml up -d
. 在此之后,我通过运行设置我的容器docker-compose up -d
:如果它们崩溃,有没有办法让这些容器重新启动?我注意到 docker 有一个内置的重启功能,但我不知道如何实现它。
在一些反馈后,我添加restart: always
到我的docker-compose
文件和我的docker-compose-deps.yml
文件中。这看起来正确吗?或者这就是您将始终执行重启的方式?
docker-compose 示例
docker-compose-deps.yml 示例