为什么 docker 容器立即退出但在具有相同 cmd 的 aws userdata 中工作正常
why docker container is exiting instantly but working fine in aws userdata with same cmd
命令一个:
docker 运行 -p 80:80 --detach=true -v /var/log/container/nginx:/var/log --name=nginx -t imagename
命令 B:
docker 运行 -d -p 80:80 --name=nginx -t imagename
这两个 CMD 有什么区别。为什么 CMD B 工作但 A 不工作?意思是当我 运行ning CMD B nginx 容器没有退出但是当我使用 CMD A 时它立即退出。但是当在 AWS 的用户数据中使用 CMD A 时,它工作正常。为什么会这样。我想更新 aws 中的 nginx 版本?但是我在我的本地系统上尝试了 CMD A 它没有给出任何错误但是 docker 正在立即退出。当我尝试 CMD B 时,它正在工作。在 aws Ec2 实例上也发生了同样的事情。但是用户数据中存在相同的 cmd 并且它正在工作。但后来它在 Ec2 实例终端 centos 中不起作用。
以下是重现问题的步骤
Docker文件
下面2行是docker文件的内容
从 nginx
复制 nginx.conf /etc/nginx/nginx.conf
在 cmd 下面,我曾经在 ubuntu(mylocalsystem) 和 centos(Ec2 instance) 上创建图像。
//docker build -t "image-name" .
比 运行 宁 docker 运行 上面提到的命令并得到问题。
我目前的 os ubuntu 20.4。
ec2实例版本centos 7.4
我没有这个文件夹。这是导致问题的唯一原因。一旦我创建一切正常。
我检查了 ec2 用户数据,发现该文件夹是在执行此行之前由 mkdir cmd 创建的。
命令一个: docker 运行 -p 80:80 --detach=true -v /var/log/container/nginx:/var/log --name=nginx -t imagename
命令 B: docker 运行 -d -p 80:80 --name=nginx -t imagename
这两个 CMD 有什么区别。为什么 CMD B 工作但 A 不工作?意思是当我 运行ning CMD B nginx 容器没有退出但是当我使用 CMD A 时它立即退出。但是当在 AWS 的用户数据中使用 CMD A 时,它工作正常。为什么会这样。我想更新 aws 中的 nginx 版本?但是我在我的本地系统上尝试了 CMD A 它没有给出任何错误但是 docker 正在立即退出。当我尝试 CMD B 时,它正在工作。在 aws Ec2 实例上也发生了同样的事情。但是用户数据中存在相同的 cmd 并且它正在工作。但后来它在 Ec2 实例终端 centos 中不起作用。
以下是重现问题的步骤
Docker文件 下面2行是docker文件的内容 从 nginx 复制 nginx.conf /etc/nginx/nginx.conf 在 cmd 下面,我曾经在 ubuntu(mylocalsystem) 和 centos(Ec2 instance) 上创建图像。 //docker build -t "image-name" .
比 运行 宁 docker 运行 上面提到的命令并得到问题。 我目前的 os ubuntu 20.4。 ec2实例版本centos 7.4
我没有这个文件夹。这是导致问题的唯一原因。一旦我创建一切正常。
我检查了 ec2 用户数据,发现该文件夹是在执行此行之前由 mkdir cmd 创建的。