Docker容器启动后自动运行Python,如何阻止该行为?
容器自动启动Python而非Shell的解决方法
原因
官方Python slim镜像的默认启动命令(CMD)就是python3,所以不额外指定命令的话,容器启动后会直接进入Python交互环境。
两种解决方式
方式1:运行容器时临时指定Shell
直接在docker run命令最后加上Shell的路径即可,优先用bash,如果镜像里没有bash就用sh:
docker run -v /home/user/work/test_images/:/app -ti name:tag /bin/bash # 无bash时的备选命令 docker run -v /home/user/work/test_images/:/app -ti name:tag /bin/sh
方式2:修改Dockerfile永久设置默认启动Shell
在你的Dockerfile末尾添加CMD指令,覆盖基础镜像的默认配置,同时修正原Dockerfile里的两处小问题:
FROM python:3.9.13-slim RUN mkdir /app COPY . /app # 修正重复的apt-get命令,合并pip安装,清理多余缓存减小镜像体积 RUN apt-get update && apt-get install -y libglib2.0-0 libgl1-mesa-glx && \ rm -rf /var/lib/apt/lists/* && \ pip install opencv-python==4.5.3.56 pandas==1.4.3 && \ rm -rf ~/.cache/pip WORKDIR /app # 设置默认启动bash,镜像无bash则替换为/bin/sh CMD ["/bin/bash"]
内容的提问来源于stack exchange,提问作者DDR
相关产品推荐
相关产品推荐

