Tag: amazon ec2

使用Docker和Kubernetes进行Tomcat部署

我对kubernetes非常陌生,它是如何工作的,但我知道它的定义。 我想看看它是如何工作的。 我对docker工具和它的function很安静。我有这个任务,我想很快完成。 你能不能指导我一步一步地走下去。 创build一个运行Tomact的Docker镜像。 它应该运行的端口是5000. tomcat应用程序应该使用kubernetes在Docker容器中以集群模式运行centos。 您可以在解决scheme中使用任何开源负载平衡器(如HAproxy)。 需要build立监控,确保系统资源得到正确利用。 您可以select您自己的监测解决scheme,如Promethues,Sensu,Nagios,Zabbix等。您也可以附加仪表板。 Docker容器应该将日志文件永久存储在Docker守护进程正在运行的基本机器中。 您可以自由使用任何configurationpipe理工具,如SaltStack,Ansible,Puppet,Chef等。 我已经完成了在这两台机器上启动2 aws ec2 ubuntu实例并安装docker。 接下来我应该做什么?

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请求代理到另一个泊坞窗容器

我正在编写一个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能否将我的请求从前端路由到后端?

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

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

在EC2不能curl本地主机,使用野蝇群

我有一个在Amazon EC2的Docker容器中运行的野蛮群集应用程序。 这是我的Docker ps: 913171ca1a34 xxxxxxxxxxx/myrepository:osapp2.0 "java -jar /app/Or…" 55 minutes ago Up 55 minutes 8080/tcp, 0.0.0.0:4000->80/tcp elastic_yonath netstat -ano | grep 4000 gives following output tcp 0 0 :::4000 :::* LISTEN off (0.00/0/0) netstat -ano | grep 80 udp 0 0 fe80::841:a6ff:fe76:c70c:546 :::* off (0.00/0/0) udp 0 0 :::53880 :::* off (0.00/0/0) unix 3 […]

docker – 组成不设置网关和IP地址

docker-compose容器无法连接到互联网的问题。 通过docker cli或kubelet手动创build的容器工作得很好。 这是在使用带有Calico覆盖的Kops创build的AWS EC2节点上(我认为这可能与其无关)。 这是docker组成: version: '2.1' services: app: container_name: app image: "debian:jessie" command: ["sleep", "99999999"] app2: container_name: app2 image: "debian:jessie" command: ["sleep", "99999999"] 这失败了: # docker exec -it app ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes docker-compose container < – >容器工作(按预期): # docker exec -it app ping app2 PING app2 (172.19.0.2): 56 […]

nginx索引指令在本地工作正常,但ec2上给404

我有一个web项目,我想用docker-compose和nginx来部署。 我在本地, docker-compose build docker-compose push 如果我是docker-compose up ,我可以访问localhost/并redirect到我的index.html 。 现在在我的EC2实例(我安装了docker和docker-compose的一个常规ec2实例)中, docker-compose pull ,然后是docker-up。 所有的容器都可以正常启动,我可以exec sh到我的nginx容器中,看到有一个/facebook/index.html文件。 如果我去[instance_ip]/index.html ,一切都按预期工作。 如果我去[instance_ip]/ ,我得到一个404响应。 nginx收到请求(我在访问日志中看到它),但不会redirect到index.html 。 为什么index指令不能redirect到我的index.html文件? 我尝试过了: 通过删除所有本地图像并从我的registry中提取本地重现。 杀死我的EC2实例,并启动一个新的。 但是我得到了同样的结果。 我使用docker-compose 1.11.1和docker 17.05.0。 在ec2实例上,它是docker 17.03.1,我试了两个docker-compose 1.11.1和1.14.1(注意我有点绝望;))。 来自我的docker-compose文件的摘录: nginx: image: [image from registry] build: context: ./ dockerfile: deploy/nginx.dockerfile ports: – "80:80" depends_on: – web 我的nginx镜像从alpine开始,安装nginx,添加index.html文件,并将我的conf文件复制到/etc/nginx/nginx.conf 。 这是我的nginxconfiguration。 我检查它在运行的容器上(包括本地和ec2上)。 # […]

httpd(pid 44)已经在运行

我正在尝试将开源地理编码服务器部署到连接到AWS EC2的Docker云上。 容器在当地完美工作。 但是,当我在云上执行start.sh命令。 它总是给我错误: * Starting PostgreSQL 9.3 database server …done. httpd (pid 44) already running 然后在启动失败。 任何想法如何解决它或出了什么问题?

AWS ECS – Docker Container以代码0退出

我正在尝试使用AWS ECS启动我的Docker容器。 当我运行任务,我看到状态为待定,然后立即我看到我的任务状态是在停止。 但是,当我尝试通过SSH手动运行相同的docker容器到该框中,我能够启动容器。 我无法使用ECS代理获取我的docker集装箱。 我也尝试SSH到那个盒子里,看着所有的ECS日志,这是没有帮助的跟踪这个问题。 这是我一步一步做的 在本地创build我的docker集装箱和testing相同。 按照ECS的AWS入门文档,将正在运行的docker容器映像上传到AWS ECR。 为我的docker集装箱创build任务定义。 创build了一个集群configuration来运行我的任务 我运行了任务并select了任务应该运行的集群 我看到任务状态处于挂起状态,立即将状态更改为停止状态。 我不知道如何解决这个问题。 同样从AWS UI,我看到docker集装箱退出0退出。 这是我创build的任务定义 任务定义JSON { "requiresAttributes": [ { "value": null, "name": "com.amazonaws.ecs.capability.ecr-auth", "targetId": null, "targetType": null }, { "value": null, "name": "com.amazonaws.ecs.capability.task-iam-role", "targetId": null, "targetType": null } ], "taskDefinitionArn": "arn:aws:ecs:us-east-2:####################:taskdefinition/app1:3", "networkMode": "bridge", "status": "ACTIVE", "revision": 3, "taskRoleArn": "arn:aws:iam::##################################:role/EC2ContainerServiceFullAccess", "containerDefinitions": [ […]

Docker构build安装不必要的包,导致图像运行失败

我正在使用docker和amazon EC2实例(本地机器是mac)在dotnet核心项目上工作。 一切都很好,直到今天。 在我的最后一个docker版本上,命令dotnet恢复开始安装新的和必要的软件包。 它应该只安装65个包,现在我得到了一百多个。 此外,docker生成的图像没有任何原因,从500Mo增长到850Mo。 你有什么线索可能来自哪里。 我的完整安装: Mac OS El Capitan 可视代码1.17.2 .net核心1.1 docker Amazon EC2实例 ——编辑:更多信息——— 我的csproj文件 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="AWSSDK.CognitoIdentity" Version="3.3.2.6" /> <PackageReference Include="AWSSDK.Core" Version="3.3.13.1" /> <PackageReference Include="AWSSDK.Extensions.NETCore.Setup" Version="3.3.0.3" /> <PackageReference Include="AWSSDK.S3" Version="3.3.5.14" /> <PackageReference Include="SSH.Net" Version="2016.0.0" /> <PackageReference Include="ImageSharp" Version="1.0.0-alpha9-00089" /> <PackageReference […]