Ubuntu环境下Python容器未启动问题排查及shell进入方法
问题解答:Docker容器启动后停止、进入容器及Poetry项目创建
一、容器启动后立即停止的原因
你使用的基础镜像python:3.10-slim默认启动命令(CMD)是python,当执行docker run时,如果未指定交互模式,Python进程启动后没有输入就会直接退出,容器依赖的主进程退出后,容器随即停止。整个过程无日志输出,所以你查看日志时为空。
二、启动容器并保持运行的方法
有两种常用方式:
- 直接进入容器命令行:启动容器时打开交互终端,指定运行bash命令,容器会保持运行状态
docker run -it --name py3.10ubuntu local:python3.10ubuntu bash - 后台启动容器,后续再进入:用
-d参数让容器后台运行,配合-it保留交互能力,同样指定bash作为运行命令docker run -dit --name py3.10ubuntu local:python3.10ubuntu bash
三、进入后台运行的容器命令行
如果容器是用-dit参数后台启动的,执行以下命令进入:
docker exec -it py3.10ubuntu bash
执行后即可进入容器的bash命令行环境。
四、在容器内创建Poetry项目并运行Python文件
进入容器命令行后,按以下步骤操作:
- 创建并进入项目目录:
mkdir my_poetry_project && cd my_poetry_project - 初始化Poetry项目(用
--no-interactive可跳过交互提示,直接生成配置):poetry init --no-interactive --name "my-test-project" --author "Your Name" --version "0.1.0" --description "Docker Poetry test" --python "^3.10" - 创建测试Python文件:
echo "print('Hello Poetry in Docker!')" > test.py - 运行Python文件:
- 用Poetry虚拟环境运行:
poetry run python test.py - 直接用系统Python运行:
python test.py
- 用Poetry虚拟环境运行:
内容的提问来源于stack exchange,提问作者edge selcuk
相关产品推荐
相关产品推荐

