如何在 运行 之后获得对 docker 容器的 bash 访问权限
How to gain bash access to a docker container after its ran
我的 docker 文件如下所示:
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
但是,当我尝试 bash 进入容器时 - 它说它不是 运行ning。之所以要bash进去是因为我要安装OpenCV。所以我想先 bash 进入它手动执行命令以确保它们正常工作,以便我可以将它们放入我的 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
因为容器不是 运行ning 我似乎无法 bash 进入它:
▶ docker exec -it ocr bash
Error response from daemon: Container ocr is not running
问题
如何获得 shell 访问此容器的权限,以便我可以 bash 使用
进入其中
docker exec -it ocr bash
您可以使用
启动容器
docker run -it --name ocr my/ocr bash
直接得到一个shell。
如果你不想这样,你可以用
启动你的容器
docker run -d --name ocr my/ocr sleep infinity
然后执行到您的容器中:
docker exec -it ocr bash
我的 docker 文件如下所示:
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
但是,当我尝试 bash 进入容器时 - 它说它不是 运行ning。之所以要bash进去是因为我要安装OpenCV。所以我想先 bash 进入它手动执行命令以确保它们正常工作,以便我可以将它们放入我的 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
因为容器不是 运行ning 我似乎无法 bash 进入它:
▶ docker exec -it ocr bash
Error response from daemon: Container ocr is not running
问题
如何获得 shell 访问此容器的权限,以便我可以 bash 使用
进入其中docker exec -it ocr bash
您可以使用
启动容器docker run -it --name ocr my/ocr bash
直接得到一个shell。
如果你不想这样,你可以用
启动你的容器docker run -d --name ocr my/ocr sleep infinity
然后执行到您的容器中:
docker exec -it ocr bash