社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker容器未运行

Antony Lapitskiy • 7 年前 • 2056 次点击  

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

守护进程的错误响应:容器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
文章 [ 2 ]  |  最新文章 7 年前
lependu
Reply   •   1 楼
lependu    7 年前

无法执行容器,因为 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    7 年前

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

一旦集装箱出口,你就不能 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