Docker:来自守护进程的错误响应:没有这样的id:

目前我试图用docker run -d ID在deamon上启动docker image(在启动这个commande之后: docker build -t toto .

但是当我启动这个指令时: docker exec -it ID bash ,我得到这个错误:

来自守护进程的错误响应:没有这样的id:toto

我的Dockerfile看起来像这样:

 # Dockerfile FROM debian:jessie # Upgrade system RUN apt-get update && apt-get dist-upgrade -y --no-install-recommends # Install TOR RUN apt-get install -y --no-install-recommends tor tor-geoipdb torsocks # INSTALL POLIPO RUN apt-get update && apt-get install -y polipo # INSTALL PYTHON RUN apt-get install -y python2.7 python-pip python-dev build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev libxslt-dev libxml2-dev && apt-get clean # INSTALL GIT RUN apt-get install -y git-core # INSTALL NANO RUN apt-get install -y nano # INSTALL SUPERVISOR RUN apt-get install -y supervisor # INSTALL SCRAPY and dependencies RUN pip install lxml && pip install pyopenssl && pip install Scrapy && pip install pyopenssl && pip install beautifulsoup4 && pip install lxml && pip install elasticsearch && pip install simplejson && pip install requests && pip install scrapy-crawlera && pip install avro && pip install stem # INSTALL CURL RUN apt-get install -y curl # Default ORPort EXPOSE 9001 # Default DirPort EXPOSE 9030 # Default SOCKS5 proxy port EXPOSE 9050 # Default ControlPort EXPOSE 9051 # Default polipo Port EXPOSE 8123 # Configure Tor and Polopo RUN echo 'socksParentProxy = "localhost:9050"' >> /etc/polipo/config RUN echo 'socksProxyType = socks5' >> /etc/polipo/config RUN echo 'diskCacheRoot = ""' >> /etc/polipo/config RUN echo 'ORPort 9001' >> /etc/tor/torrc RUN echo 'ExitPolicy reject *:*' >> /etc/tor/torrc ENV PYTHONPATH $PYTHONPATH:/scrapy WORKDIR /scrapy VOLUME ["/scrapy"] 

提前致谢。

为了方便docker exec的使用,请确保你运行一个名字的容器:

 docker run -d --name aname.cont ... 

我没有看到一个入口点或exec在Dockerfile中直接运行,所以在使用docker docker run -d时候要提到你想要运行的东西

(我喜欢加上' .cont '作为命名约定,记住它是一个容器名称,而不是图像名称)

然后一个docker exec aname.cont bash应该工作。

检查容器是否仍在运行docker ps -a

创build容器时,应该使用图像名称:

docker运行-d –name my_toto toto

创build时不能强加一个ID。 是分配ID的Docker。

然后连接

docker执行官 – 我my_toto bash


更快捷的方式是直接运行

docker运行-d -it -name my_toto toto bash

退出后容器仍然存在。