![](/img/trans.png)
[英]Error Docker deployment in Amazon EC2 - Docker container quit unexpectedly
[英]Error Docker deployment in Amazon Elastic Beanstalk - Docker container quit unexpectedly
我正在嘗試通過Elastic Beanstalk部署一個簡單的Docker容器,但我正在得到Docker容器意外退出錯誤。 不知道這里出了什么問題。 先謝謝您的幫助。
Dockerrun.aws.json:
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "janedoe/image",
"Update": "true"
},
"Ports": [{
"ContainerPort": "10010"
}],
"Volumes": [{
"HostDirectory": "/home/ec2-user/testdocker",
"ContainerDirectory": "/home/ec2-user/testdocker"
}],
"Logging": "/home/ec2-user/testlogs"
}
Dockerfile:
FROM centos:centos6
MAINTAINER janedoe
RUN echo“ test” EXPOSE 10010
日志:
[2016-03-22T22:56:35.034Z] INFO [15895] - [Application update/AppDeployStage0/AppDeployPreHook/03build.sh] : Completed activity.
Result:
centos6: Pulling from library/centos
Digest: sha256:ec1bf627545d77d05270b3bbd32a9acca713189c58bc118f21abd17ff2629e3f
Status: Image is up to date for centos:centos6
Successfully pulled centos:centos6
Sending build context to Docker daemon 4.608 kB
Sending build context to Docker daemon 4.608 kB
Step 1 : FROM centos:centos6
---> ed452988fb6e
Step 2 : MAINTAINER janedoe
---> Running in 8bce7dfb7e59
---> 04de6fffed04
Removing intermediate container 8bce7dfb7e59
Step 3 : RUN echo "test"
---> Running in 36cef1d7c0e5
test
---> c5b3d119184c
Removing intermediate container 36cef1d7c0e5
Step 4 : EXPOSE 10010
---> Running in ea07cbcc1136
---> 45f9b3fe6503
Removing intermediate container ea07cbcc1136
Successfully built 45f9b3fe6503
Successfully built aws_beanstalk/staging-app
[2016-03-22T22:56:35.034Z] INFO [15895] - [Application update/AppDeployStage0/AppDeployPreHook] : Completed activity. Result:
Successfully execute hooks in directory /opt/elasticbeanstalk/hooks/appdeploy/pre.
[2016-03-22T22:56:35.035Z] INFO [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild] : Starting activity...
[2016-03-22T22:56:35.550Z] INFO [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Starting activity...
[2016-03-22T22:56:35.550Z] INFO [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Completed activity.
[2016-03-22T22:56:35.587Z] INFO [15895] - [Application update/AppDeployStage0/EbExtensionPostBuild] : Completed activity.
[2016-03-22T22:56:35.588Z] INFO [15895] - [Application update/AppDeployStage0/InfraCleanEbextension] : Starting activity...
[2016-03-22T22:56:36.107Z] INFO [15895] - [Application update/AppDeployStage0/InfraCleanEbextension] : Completed activity. Result:
Cleaned ebextensions subdirectories from .
[2016-03-22T22:56:36.107Z] INFO [15895] - [Application update/AppDeployStage0] : Completed activity. Result:
Application update - Command CMD-AppDeploy stage 0 completed
[2016-03-22T22:56:36.107Z] INFO [15895] - [Application update/AppDeployStage1] : Starting activity...
[2016-03-22T22:56:36.108Z] INFO [15895] - [Application update/AppDeployStage1/AppDeployEnactHook] : Starting activity...
[2016-03-22T22:56:36.108Z] INFO [15895] - [Application update/AppDeployStage1/AppDeployEnactHook/00run.sh] : Starting activity...
[2016-03-22T22:56:44.157Z] INFO [15895] - [Application update/AppDeployStage1/AppDeployEnactHook/00run.sh] : Activity execution failed, because: 268f1a5e43874771bc6039977e9eb048e704c0b94a5e100a2a9ffbf2d9d7f271
Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Tue Mar 22 22:56:44 UTC 2016:. Check snapshot logs for details. (ElasticBeanstalk::ExternalInvocationError)
caused by: 268f1a5e43874771bc6039977e9eb048e704c0b94a5e100a2a9ffbf2d9d7f271
Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Tue Mar 22 22:56:44 UTC 2016:. Check snapshot logs for details. (Executor::NonZeroExitStatus)
您應該在Dockerfile上使用CMD而不是RUN。
在Dockerfile中執行命令時,必須在RUN,CMD和ENTRYPOINT之間進行仔細選擇(從Docker參考中提取):
RUN指令將在當前映像頂部的新層中執行任何命令,並提交結果。 生成的提交映像將用於Dockerfile中的下一步。
CMD的主要目的是為執行中的容器提供默認值 。 這些默認值可以包含可執行文件,也可以省略可執行文件,在這種情況下,您還必須指定ENTRYPOINT指令。
ENTRYPOINT允許您配置將作為可執行文件運行的容器。
您應該深入閱讀Docker參考和Docker最佳實踐
除此之外,如果您打算使用在Dockerrun.aws.json中定義的卷,請記住AWS文檔中的說明 :
使用Dockerfile時,請勿在Dockerrun.aws.json文件中指定Image鍵。 如果存在,Elastic Beanstalk將始終構建並使用Dockerfile中描述的映像。
這意味着您的Dockerrun.aws.json將被忽略,因此請當心。
如果您像這樣運行,則僅看到命令提示符輸出會更容易
eb create <replace_with_your_env_name/> -vvv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.