如何在运行后获得对docker容器的bash访问权限

时间:2016-01-24 12:15:06

标签: python opencv docker docker-machine

我的dockerfile如下所示:

FROM my/ubuntu:latest

RUN apt-get update \
 && apt-get install -y build-essential cmake pkg-config wget \
 libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev \
 libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
 libatlas-base-dev gfortran \
 python \
 python2.7-dev \
 && wget https://bootstrap.pypa.io/get-pip.py \
 && python get-pip.py \
 && pip install numpy

我像这样构建图像

docker build -t my/ocr:latest docker-ocr

我像这样运行图像

docker run -d --name ocr my/ocr
6cb4d2408ced5b5b3c68f3f5b236784c2ec3ba780592104c7a7651620bd3bd75

然而,当我尝试猛击容器时 - 它说它没有运行。我之所以要加入它是因为我想安装OpenCV。所以我想首先尝试手动执行命令以确保它们正常工作,以便我可以将它们放入我的docker文件中。

▶ docker ps -a
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                     PORTS                    NAMES
6cb4d2408ced        my/ocr            "/bin/bash"              9 seconds ago       Exited (0) 9 seconds ago                            ocr
74c1f48e98ad        my/tomcat:7.0     "/run.sh"                2 days ago          Up 2 days                  0.0.0.0:8080->8080/tcp   tomcat7
db3f66a2d97e        my/mysql:latest   "/sbin/entrypoint.sh "   3 days ago          Up 3 days                  0.0.0.0:3306->3306/tcp   mysql

由于容器没有运行,我似乎无法抨击它:

▶ docker exec -it ocr bash
Error response from daemon: Container ocr is not running

问题

如何获得对此容器的shell访问权限,以便我可以使用

进行攻击

docker exec -it ocr bash

1 个答案:

答案 0 :(得分:3)

您可以使用

启动容器
docker run -it --name ocr my/ocr bash

直接获得shell。

如果您不想要,可以使用

启动您的cotainer
docker run -d --name ocr my/ocr sleep infinity

然后执行到您的容器中:

docker exec -it ocr bash