Docker:由于缺少bash,无法编辑图像中的代码

Docker:由于缺少bash,无法编辑图像中的代码,docker,ubuntu,Docker,Ubuntu,我在AWS服务器上运行Ubuntu18。在该服务器中,我有一个Docker映像,我希望在其仍在运行时更改其代码 ubuntu@ip-172-31-6-79:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE fc latest 20949d0fd7ec

我在AWS服务器上运行Ubuntu18。在该服务器中,我有一个Docker映像,我希望在其仍在运行时更改其代码

ubuntu@ip-172-31-6-79:~$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
fc                         latest              20949d0fd7ec        7 days ago          1.74GB
debian                     latest              8d31923452f8        5 weeks ago         101MB
ekholabs/face-classifier   latest              b1a390b8ec60        21 months ago       1.77GB
为了更改代码,我运行了以下命令

ubuntu@ip-172-31-6-79:~$ docker run -it fc bash
但是我得到了以下错误

python3: can't open file 'bash': [Errno 2] No such file or directory
我如何着手解决这个问题,以便在Docker图像中编辑代码。作为旁注,这里是Dockerfile

FROM debian:latest

RUN apt-get -y update && apt-get install -y git python3-pip python3-dev python3-tk vim procps curl

#Face classificarion dependencies & web application
RUN pip3 install numpy scipy scikit-learn pillow tensorflow pandas h5py opencv-python==3.2.0.8 keras statistics pyyaml pyparsing cycler matplotlib Flask

ADD . /ekholabs/face-classifier

WORKDIR ekholabs/face-classifier

ENV PYTHONPATH=$PYTHONPATH:src
ENV FACE_CLASSIFIER_PORT=8084
EXPOSE $FACE_CLASSIFIER_PORT

ENTRYPOINT ["python3"]
CMD ["src/web/faces.py"]

问题出在您的Docker文件上您使用的是

入口点[“蟒蛇3”]

也就是说当你跑步的时候

docker run-it fc bash

它在容器内被转换为“python3bash”,这就是为什么会出现错误

python3:无法打开文件“bash”:[Errno 2]没有这样的文件或目录

尝试移除入口点


希望能解决问题。

通常我会在本地开发环境中进行更改,测试它,
docker构建一个新映像,然后删除并重新启动容器。删除容器是一件非常常规的事情,试图直接编辑容器中的代码只会要求丢失工作。@DavidMaze这是有道理的。这不是浪费了很多时间,因为它需要一段时间才能建成吗?就像我不想做所有的工作只是为了发现我犯了一个小的语法错误。也许我误解了在您开始
sudocker构建和&Docker运行序列之前,在Docker外部本地运行单元测试,比如
pytest