Py学习  »  docker

Docker容器未运行

Antony Lapitskiy • 5 年前 • 1551 次点击  

请帮忙。当我想进入一个容器是说

守护进程的错误响应:容器90599013c66d332ff6560ccde5053d9127e72042ecc3887550aef90fa1deac未运行

我的卷宗文件:

FROM ubuntu:16.04

MAINTAINER Anton Lapitski <a.lapitski@godeltech.com>

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app


ADD ./ /usr/src/app

EXPOSE 80

ENTRYPOINT ["/bin/sh", "-c", "/usr/src/app/entry.sh"]

启动脚本-start.sh:

sudo docker build -t starter .
sudo docker run -t -v mounted-directory:/usr/src/app/mounted-directory -p 80:80 starter

entry.sh脚本:

echo "Hello World"
ls -l
pwd
if mountpoint -q /mounted-directory 
then
  echo "mounted"
else
  echo "not mounted"
fi

Sudo Docker PS-A给出:

CONTAINER ID   IMAGE  COMMAND CREATED STATUS   PORTS   NAMES
90599013c666   starter "/bin/sh -c /usr/src…"   18 minutes ago      Exited (0) 18 minutes ago                       thirsty_wiles

最重要的是:

sudo docker exec -it 90599013c666 bash
Error response from daemon: Container 90599013c666d332ff6560ccde5053d9127e72042ecc3887550aef90fa1d1eac is not running

你能告诉我我做错了什么吗? P.S在运行时添加-d标志没有帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39938
 
1551 次点击  
文章 [ 2 ]  |  最新文章 5 年前
lependu
Reply   •   1 楼
lependu    6 年前

无法执行容器,因为 ENTRYPOINT 脚本已完成,容器已停止。试试这个:

  1. 移除 入口点 从你的档案
  2. 重建图像
  3. 运行它 sudo docker run -it -v mounted-directory:/usr/src/app/mounted-directory -p 80:80 starter sh

关键是 i 旗帜和 sh 在命令的末尾。

David Maze
Reply   •   2 楼
David Maze    6 年前

一旦入口点完成(以任何形式),容器就退出。

一旦集装箱出口,你就不能 docker exec 投入其中。

如果你想得到一个外壳上的形象,你只是建立了戳在它周围,你可以

sudo docker run --rm -it --entrypoint /bin/sh starter

为了使运行起来稍微容易一些,您可以在dockerfile中将entrypoint更改为cmd。(Docker将运行entrypoint,将cmd作为命令行参数传递;或者如果没有entrypoint,只运行cmd。)

...
RUN chmod +x ./app.sh
CMD ["./app.sh"]

这样做之后,可以更容易地重写命令

sudo docker run --rm -it starter /bin/sh