Tag: amazon web services

AWS EC2 – 连接被拒绝运行docker容器

我正在尝试在Amazon EC2实例中运行Docker镜像。 容器在8080端口启动正常。 当我打开另一个terminal,我运行curl localhost:8080 / customers / 1时 ,terminal显示: curl:(7)无法连接到本地端口8080:连接被拒绝 该实例与具有此configuration的安全组相关联: 请问你能帮帮我吗?

postgres pg_basebackup找不到.pg_pass文件

我已经成功地从一个主要到二级postgres泊坞窗容器安装复制stream,每个容器在单独的ec2实例上作为任务运行。 不过,我通过将主服务器上的复制用户作为信任保留在其pg_hba.conf中来实现此目的: host replication replication 0.0.0.0/0 trust 然后,当我切换到MD5,我想我可以简单地设置复制用户的辅助密码,一切都会好起来的。 不。 在我的辅助初始化脚本中,当我调用pg_basebackup -h #{primary_ip} -p 5432 -D $PGDATA -U #{repl_user} -v -P -w –xlog-method=stream我最初得到密码提示。 然后我加了-w 。 这会给我的错误: pg_basebackup: could not connect to server: fe_sendauth: no password supplied 然后我发现在通用的postgres 9.6映像上没有postgres主目录,所以我添加了一个$ PG_PASSFILEvariables。 这不起作用(权限很好,我甚至把它放在/ tmp中,并通过pg_basebackup行上的PG_PASSFILE = …,正如在这个问题中: .pgpass在Dockerized环境中用于PostgreSQL复制 (参见Raphael的评论) ) 不pipe我做什么,pg_basebackup都会忽略.pg_pass文件。 然后,我尝试将卷挂载为/ home / postgres,但是使用AWS,我似乎无法在创build的入口点init脚本中创build根目录。 一切都是作为postgres用户。 有人克服这个吗? 我正在运行我的辅助初始化代码作为入口点脚本。 就像我说的,作为信任工作正常,但添encryption码正在杀死我。

将http请求redirect到django nginx服务器上的https时,AWR ALB运行状况检查失败

首先,我使用服务器环境 django + nginx + uwsgi AWS ECS + ALB loadbalencer AWS ACM SSL证书 我希望nginx将http请求redirect到https请求在此之前,我testing了是否可以接收http和https请求。 http和https通常都会收到请求。 等/ nginx的/ nginx.conf user root; worker_processes 5; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; daemon off; events { worker_connections 768; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_names_hash_bucket_size 512; include /etc/nginx/mime.types; […]

容器已经停止在ECS上的错误

我最近开始与亚马逊ECS。 我创build了一个非常基本的泊坞窗图像,具有以下细节: FROM centos:7 LABEL name="MRK" \ vendor="MRK" \ build-date="20170529" #Install required packages RUN yum -y update RUN yum -y install java RUN yum -y install ImageMagick #Copy server code to container image COPY my_server /opt/my_server #Run my_server/startup.sh on startup RUN /opt/my_server/startup.sh CMD ["/bin/bash"] 我把这个推到ECS为我创build的回购。 之后,我按照AWS ECS控制台上的入门步骤执行以下步骤: 通过AWS控制台创build一个具有一个容器实例的集群。 创build了一个任务定义,在容器下我提供了有关我的推送图像的信息。 为此任务定义创build一个服务,以最小计数1运行。 服务执行却抛出“ 必需的容器在任务退出 ”的错误。 我试图find控制台上的任何其他错误的细节,但无法find。 我滑到容器实例,我在docker日志中看到这个错误: […]

AWS ECS容器不能指定区域

首先,我使用服务器环境: sever:django + nginx + uwsgi 云:docker+ AWS ECS 日志logging:AWS CloudWatch日志服务+了望塔第三方应用程序 这是项目代码 https://github.com/byunghyunpark/django-log-test 题 我正在使用django第三方应用程序来使用AWS Cloudwatch日志服务。 如果我将日志处理程序设置为了望塔并将泊坞窗图像上传到ECS服务并运行任务,它仍将返回500错误。 500错误如果您检查日志 /tmp/uwsgi.log *** Operational MODE: single process *** DEBUG = False DEV = False TEST = False LMS_MESSAGE = False STATIC_S3 = True DJANGO_LOG_LEVEL = INFO Traceback (most recent call last): File "/usr/lib/python3.5/logging/config.py", line 558, in configure handler […]

将HTTP请求代理到另一个泊坞窗容器

我正在编写一个Web应用程序,它将在aws中的ec2实例中运行。 它由两个docker集装箱组成,一个后端和前端集装箱。 后端用作api,写在nodejs中,前端用reactjs写成。 我无法弄清楚如何让集装箱以不仅与aws兼容的方式进行通讯,而且还可以与弹性装载机平衡机一起工作。 具体而言,如果后端严重征税,我希望更多的后端实例在处理来自客户端的请求时被抛弃。 前端将通过http向后端发出请求,后端将响应客户端显示的一些数据(通过reactjs)。 前端泊坞窗容器暴露端口3000,后端容器暴露其各自的泊坞窗文件中的端口3001。 在本地我鼓励像这样的节点通信: // package.json … "proxy": "http://localhost:3001/", … // front-end code requestServerToProcessParameters(parameters) { return new Promise(function(resolve, reject) { request .post('/ProcessCase/DataPoints') .send(parameters) .end(function(err, res) { if (err) { console.log(err); reject(err) } else { resolve(res); } }); }); } 正如你可以看到前端代理请求到后端,但是,这是硬编码,并在一个真正的宁静api前端或后端都不应该彼此了解。 所以我想我的问题是,这些docker集装箱互相沟通的最佳方式是什么? 我真的不希望他们生活在同一个docker-network因为这两个集装箱再也不需要彼此了解。 elastic load balancer能否将我的请求从前端路由到后端?

Dockerclosures钩子或支持优雅退出

我通过ECS运行一个docker集装箱。 启动时,容器将运行一个将执行一些特定操作的进程。 这些操作可能需要几分钟才能完成。 ECS将在集群中运行多个EC2实例(每个实例运行多个容器)。 这些容器的启动将根据我们向CloudWatch报告的特定指标进行自动调整。 问题出现在我们需要缩小容器的时候。 我们需要正常closures容器(因为它们将运行这个过程),我不想在没有完成正在运行的过程的情况下杀死容器。 我看到和Docker不支持关机挂钩https://github.com/moby/moby/issues/2100 我想这样做的一个方法是缩小不。 通过跟踪正在运行的实例及其状态来跟踪应用程序本身。 我只是想知道在这方面是否有其他解决scheme/想法?

Elastic Beanstalk Docker容器运行Node应用程序提前退出

我有一个Docker的ElasticBeanstalk环境,用于部署运行restify的节点应用程序。 当我们部署新版本的应用程序时,我们发现错误是间歇性的: Command failed on instance. Return code: 1 Output: nginx: [emerg] no host in upstream ":8080" 查看日志时,我们看到容器退出exit 0意味着应用程序正在返回它已成功退出。 Dockerfile: FROM node:alpine RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY .npmrc .npmrc COPY package.json /usr/src/app/ RUN npm install RUN rm -f .npmrc COPY . /usr/src/app EXPOSE 8080 CMD ["npm", "start"]

CannotStartContainerError提交AWS批处理作业

在AWS Batch我有一个job definition ,一个job queue和一个执行我的AWS Batch jobs的compute environment 。 提交工作后,我发现它在失败的列表中有这个错误: Status reason Essential container in task exited Container message CannotStartContainerError: API error (404): oci runtime error: container_linux.go:247: starting container process caused "exec: \"/var/application/script.sh –file= –key=. 在cloudwatch logs我有: container_linux.go:247: starting container process caused "exec: \"/var/application/script.sh –file=Toulouse.json –key=out\": stat /var/application/script.sh –file=Toulouse.json –key=out: no such file or directory" […]

Docker与AWS持续集成

我目前正在尝试使用CodePipeline自动化我们的开发过程。 我的docker应用程序从Source(Github) – > Builds(AWS CodeBuild) – > Deploy中获取。 在最终部署过程中,我无法修改我的任务定义并重新启动群集任务。 我知道我需要一个CloudFormation模板来执行这些操作,但没有太多关于如何使用CloudFormation(修改我的任务定义和更新我的任务)完成部署过程的文档。 有没有另外一种方法通过AWS自动部署我的容器?