Tag: amazon web services

AWS容器服务 – 什么是日志logging最佳实践?

我目前的做法是logging到每个容器的标准输出,然后得到docker将其发送到系统日志,或者如果容器不能执行标准输出到syslog到远程系统日志,并设置logstash是该系统日志接收器。 AWS是否提供了我应该考虑的日志function?

部署Docker数据卷

如何将具有内容的命名数据卷部署到群中的节点? 这是我想要做的,如Docker文档中所述: “考虑一下你的图像启动一个轻量级的web服务器的情况。 您可以使用该图像作为基础图像,复制您的网站的HTML文件,并将其打包到另一个图像。 每当您的网站改变时,您都需要更新新的图片并重新部署所有为您的网站服务的容器。 更好的解决scheme是将网站存储在每个Web服务器容器启动时所连接的命名卷中。 要更新网站,只需更新命名卷。“(来源: https : //docs.docker.com/engine/reference/commandline/service_create/#add-bind-mounts-or-volumes ) 我想使用更好的解决scheme。 但是描述没有说明如何将命名卷部署到托pipe运行Web服务器的机器上,而且我无法从文档中清楚地读到这一点。 我使用Docker for AWS来build立一个群集,其中每个节点都运行在不同的EC2实例上。 如果容器应该在本地安装卷,那么它如何部署到群的每个节点? 如果从pipe理器节点挂载为节点可见的networking文件系统,那么在docker-compose yaml文件中是如何指定的? 那么修订后的卷如何从开发机器部署到群pipe理器呢? 这可以通过docker-compose yaml文件中的deploy指令完成吗? 它可以在Docker Cloud中完成吗? 谢谢

aws中的docker swarm在重启后无法访问

我有一个Docker swarm,由一个主节点和两个工作节点组成,在AWS中运行,每天晚上我停止swarm集群运行的所有实例,并在第二天早上再次启动它们。 问题是,我每天都注意到几个服务无法启动,并且群体必须重新创build它们(这只是出于某种原因,总是在worker 1上发生),我不能ssh到worker1或worker2上运行的任何服务我没有安排master任何服务)。 当服务失败时,我得到这个错误: task: non-zero exit (0): No such container: containerName PS ec2实例只有一个根ebs我正在运行它的群体。 另外,当我停止worker1时,swarm会调度worker2中的所有服务,但是我仍然无法从群集外对其进行ssh调用。 在我再次启动worker1并在worker1和worker2之间手动重新分配服务之后,一切正常( I can ssh to the containers but only the new ones created through the update command old ones still wont be accessible) 。 我用来重新分配的命令是: docker service update –force containerName 结果 unable to pin image registry:myImage to digest: Get […]

AWS授权错误

当试图访问ECR中的图像并将其旋转(由别人的代码处理)时,会在下面引发错误。 我希望我有更多的信息,但我所知道的是在EC2实例上运行的代码不能启动我的容器,因为它在Authorization Header缺less一个密钥 Amazon.ECR.AmazonECRException: 'WITH:' not a valid key=value pair (missing equal-sign) in Authorization header: 'AWS4-HMAC-SHA256 Credential=SET WITH: dotnet user-secrets set RegistryConfig:AccessKeyId/20170615/us-west-1/ecr/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date;x-amz-target, Signature=someguid'. —> Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown. 我的问题是,我在哪里可以find这些键? 如果我在我的ec2实例上进行configuration,它已经设置了一个密钥 我是否需要将它传递给我试图启动的Docker容器? 如果是,那么传递这些值的最好方法是什么?

从ECR托pipe的Docker镜像创buildEC2最简单的方法是什么?

我想弄清楚什么是我的应用程序部署新版本的最佳方式。 我不使用EB,因为我不希望我的实例被自动replace(我正在使用websockets进行video游戏)。 我正在处理“手动”负载平衡(我创build和删除我附加到一个ALB的EC2s),我想要的是不影响现有的实例(仍然与他们当前的应用程序版本一起运行),但要把新的应用程序版本下一个我将要创build的实例。 我为我的应用程序创build了一个Docker镜像(托pipe在ECR上),我想它可以带来更多的灵活性来安装。 在理想情况下,我可以从我最新的docker图像启动一个新的EC2。 你会build议如何处理? 我正在考虑使用docker eb AMI来启动最新的映像,但不知道这是否是最好的select(不知道如何做(设置一个脚本,一旦启动实例))。

在同一台机器上用堆栈build立两个不同项目的错误

我们有多个我们用堆栈构build的haskell项目。 我们的CI过程在亚马逊上创build实例来运行testing和执行构build。 我们偶尔会得到奇怪的错误。 当我们尝试在同一个实例上运行多个构build时,我怀疑我们会得到它们。 这是我的理解,堆栈应该能够处理这个用例就好了。 在开发计算机上构build两个不同的项目,我从来没有遇到任何问题。 有什么办法来解决这些错误? 有没有办法让堆栈完全隔离运行,所以我们没有得到任何locking或文件错误? 示例错误#1 + stack setup –docker SQLite3 returned ErrorBusy while attempting to perform step. 示例错误#2 + stack build –docker –only-dependencies foundation-0.0.6: configure clock-0.7.2: download … text-1.2.2.1: copy/register /home/ubuntu/.stack/indices/Hackage/packages/exceptions/0.8.3/exceptions-0.8.3.tar.gz.tmp: renameFile: does not exist (No such file or directory)

AWS弹性豆梗不安装docker卷

这是我的Dockerun.aws.json文件: { "AWSEBDockerrunVersion": 2, "volumes": [ { "name": "nginx-proxy-conf-template", "host": { "sourcePath": "/var/app/current/dockerfiles/nginxproxy/default.conf.template" } } ], "containerDefinitions": [ { "name": "nginxProxy", "image": "chrissound/nginxproxy:latest", "essential": true, "memory": 300, "mountPoints": [ { "sourceVolume": "nginx-proxy-conf-template", "containerPath": "/etc/nginx/conf.d/default.conf.template" } ] }, { "name": "httpdbin", "image": "paddycarey/httpbin", "essential": true, "memory": 300 } ] } 但他们似乎没有安装, sudo docker ps输出: CONTAINER ID […]

AWS Elastic Beanstalk使用简单的SpringBoot Eureka映像失败部署Docker

我是AWS和Elastic Beanstalk的新手。 我试图用一个简单的Spring Boot Docker来testing一个多容器的Docker部署https://hub.docker.com/r/springcloud/eureka/只是为了看看现在可以使用的东西。 我正在上传一个非常简单的Dockerrun.aws.json文件到Beanstalk控制台: { "AWSEBDockerrunVersion": 2, "containerDefinitions": [ { "name": "eureka1", "image": "springcloud/eureka", "essential": true, "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 8761 } ] } ] } springcloud / eureka Docker镜像默认启动端口8761上的服务器,并将主机端口80映射到容器的端口8761。 所以打开应用程序的url(类似http://sample-env-1.xxx.eu-central-1.elasticbeanstalk.com/ ),它应该显示尤里卡服务器接口…它不。 它只是说“无法连接”标准的浏览器页面。 日志不会显示错误…或者至less我看不到任何明显的错误。

如何从特定的git分支推送到AWS EC2服务容器(即“分段”)

我完全不熟悉AWS,EC2和服务容器,但是我确实已经设法成功地将我的sinatra应用程序与docker轻松地按照以下指南进行操作: http://blog.honeybadger.io/how-to-deploy-a-sinatra-app-in-docker-to-amazon-s-ec2-container-service/ 现在我有2个服务容器,一个用于生产,一个用于分段。 我原来的假设是,我可以从git staging分支推送到临时容器,并从我的本地机器从git生产分支到生产容器。 当我在暂存分支上进行更改并将映像推送到暂存容器时,暂存站点没有反映新的更改(我在浏览器中清除了caching)。 Q1:无论项目从哪个分支推送,EC2 SC是否自动接受主分支? Q2:用AWS实现分段和生产服务器的最简单方法是什么(可能不是SC,也许是豆秆?)。 注意:不要使用Heroku,因为签约我的公司需要在AWS上使用他们所有的系统。

单个EBS可以跨多个Amazon Docker容器共享吗?

当第一个Docker容器closures时,我想从S3复制一些数据到EBS。 对于后来产生的Docker容器,我想分享我在EBS上复制的数据。 我不想为每个Docker容器重复数据。 任何人都可以告诉我,是否可以在多个Amazon Docker容器中共享一个EBS?