【问题标题】:How to run a Docker image inside your EC2 container?如何在 EC2 容器中运行 Docker 映像?
【发布时间】:2018-07-06 07:27:00
【问题描述】:

我有一个 EC2 实例,里面有以下 docker 映像:

REPOSITORY       TAG      IMAGE ID
grant/docker-app hookedup b99f4ad

在我的本地机器上,我一直在使用 docker-compose builddocker-compose up 来运行服务器。

如何让 EC2 实例上的映像运行?

我使用 Amazon Linux AMI 登录 AWS。我已经在上面安装了 docker 和 docker-compose。我可以看到图像,但我不知道如何启动它。

docker repo 位于 hub.docker.com。我从那里拉出来的。

我试过了:

docker run -d -p 5000:5000 grant/docker-app:hookedup

输出一些字符串:cdf4c4035e0...30b4d0881d635ecdac6f3

我也试过了:

docker-compose build grant/docker-app:hookedup

哪个输出:Can't find a suitable configuration file in this directory or any

我也试过了

docker run --rm -p 3000:3000 grantspilsbury/docker-app:hookedup

给出输出:

> docker-sample-app@0.1.0 start /usr/src/app
> react-scripts start

Could not find a required file.
  Name: index.html
  Searched in: /usr/src/app/public
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! docker-sample-app@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1

如果我运行 docker ps 或 docker ps -a 我会得到:

[ec2-user@ip-172...-26 ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[ec2-user@ip-172...-26 ~]$ docker ps -a
CONTAINER ID        IMAGE                                       COMMAND             CREATED             STATUS                         PORTS               NAMES
0ca69ff467bc        grant/docker-app:hookedup   "npm start"         24 minutes ago      Exited (1) 24 minutes ago                          happy_archimedes
2a01050f3bb6        grant/docker-app:hookedup   "npm start"         About an hour ago   Exited (1) About an hour ago                       wonderful_rosalind

如果我运行 docker logs 0ca69ff467bc 我会得到输出:

Could not find a required file.
  Name: index.html
  Searched in: /usr/src/app/public
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! docker-sample-app@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the docker-sample-app@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-01-27T03_35_55_030Z-debug.log

【问题讨论】:

  • 您考虑过使用AWS Elastic Container Services 为您管理容器启动吗?
  • 另请注意,运行run -d 是在分离模式下运行 - 您看到的字符串是该容器的唯一 ID。如果您执行docker ps(或docker ps -a 以查看正在运行和已停止的容器),您看到了什么吗?
  • @MrDuk 谢谢。我已经用 docker ps -a log 添加了这个问题。我现在正在研究 ECS。另一个兔子洞。
  • 你能把docker logs 0ca69ff467bc的输出贴出来吗?
  • @MrDuk 我已经添加了 docker log 的输出

标签: amazon-web-services docker amazon-ec2 docker-compose dockerfile


【解决方案1】:

您的容器内部存在 nodejs 问题。运行

docker run -it --rm -p 3000:3000 --entrypoint sh grantspilsbury/docker-app:hookedup

检查容器内的内容,尤其是/usr/src/app/public。并且,也许,与您的开发人员合作。

在我看来,容器中有一个 nodejs react 应用程序。在 WORKDIR 中有 package.json。但是,index.html 找不到表示并非所有文件都复制到图像中,或者应用程序在错误的路径中搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-04
    • 2016-02-12
    • 2013-09-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多