我使用 CodeFresh 构建 Docker 镜像并推送到 AWS ECR。
我检查了我的 ECR,我可以看到已成功推送到那里。
我通过 SSH 连接到我的 EC2,但没有看到任何内容。
<小时/>更新
[ec2-user@ip-10-0-0-47 share]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e4d4eae6520 616934057156.dkr.ecr.us-east-2.amazonaws.com/bheng-api "sh cmd.sh" 29 hours ago Up 29 hours 3002/tcp ecs-api-1-bheng-api-88ef95c7ddc993badf01
44b78781d487 amazon/amazon-ecs-agent:latest "/agent" 30 hours ago Up 30 hours ecs-agent
[ec2-user@ip-10-0-0-47 share]$
[ec2-user@ip-10-0-0-47 share]$
[ec2-user@ip-10-0-0-47 share]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
616934057156.dkr.ecr.us-east-2.amazonaws.com/bheng-api latest 41e9eaa2aff2 29 hours ago 952MB
amazon/amazon-ecs-agent latest 622111e45fde 6 weeks ago 29.4MB
amazon/amazon-ecs-pause 0.1.0 b875fd8f097a 6 weeks ago 963kB
[ec2-user@ip-10-0-0-47 share]$
[ec2-user@ip-10-0-0-47 share]$
[ec2-user@ip-10-0-0-47 share]$
<小时/>
这是我的EC2的安全组
PM2
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [all](ids: 0)
[PM2] [index](0) ✓
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ index │ 0 │ fork │ 23901 │ online │ 1 │ 0s │ 0% │ 12.8 MB │ node │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
最佳答案
第一件事
通过执行 ls
并不意味着它将显示 docker 镜像。
如果 Docker 镜像拉取成功,则使用以下命令检查它。
docker images
这将打印在此 ec2 容器实例中运行的所有镜像。
类似于 56789.dkr.ecr.us-east-2.amazonaws.com/bheng-api:latest
。
至于调试,您需要检查您的 docker 容器是否正在运行。
docker ps
这将打印正在运行的容器。
复制容器的 ID 并运行此命令。
docker exec -it {container_id} bash|ash
docker 日志
docker logs {container_id}
您还可以通过为您的 ece 容器实例分配角色并运行以下命令来检查镜像的工作情况。
docker run -it --rm -p 80:80 56789.dkr.ecr.us-east-2.amazonaws.com/bheng-api:latest
我再提一下步骤
- create ECR and push ur docker image
- create Task definition
- create service that runs the instance of that task definition. with out service there will be nothing like container or docker image. once u create service you will se docker image in your ec2 instance.
您还可以使用 AWS 控制台在 ECS -> 集群 -> 服务 -> 任务下查看任务事件
如果出现问题,您会在类似的事件中看到
如果一切顺利,那么
完整图片
关于node.js - 将 NodeJS Express API 部署到 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51003340/