docker 按带ssh的python环境的容器
Dockerfile
# 使用官方 Python 3.12 on Debian 12 (bookworm)
FROM python:3.12-bookwormENV DEBIAN_FRONTEND=noninteractive \PYTHONUNBUFFERED=1 \TZ=Asia/Shanghai# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo "Asia/Shanghai" > /etc/timezone# 替换为清华大学 Debian 源(deb822 格式)
RUN echo "Types: deb\n\
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian\n\
Suites: bookworm\n\
Components: main contrib non-free non-free-firmware\n\
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\
\n\
Types: deb\n\
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security\n\
Suites: bookworm-security\n\
Components: main contrib non-free non-free-firmware\n\
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg" \
> /etc/apt/sources.list.d/debian.sources# 安装 openssh-server
RUN apt-get update && \apt-get install -y --no-install-recommends openssh-server && \apt-get clean && \rm -rf /var/lib/apt/lists/*# 创建 SSH 所需目录
RUN mkdir -p /run/sshd# 允许 root 登录(仅测试用)
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config# 配置 pip 使用阿里云源
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/# 启动脚本:从环境变量 ROOT_PASSWORD 设置 root 密码
RUN echo '#!/bin/bash\n\
if [ -z "$ROOT_PASSWORD" ]; then\n\echo "Error: ROOT_PASSWORD environment variable not set."\n\echo "Please run with: -e ROOT_PASSWORD=your_password"\n\exit 1\n\
fi\n\
echo "root:$ROOT_PASSWORD" | chpasswd\n\
exec /usr/sbin/sshd -D\n' \
> /entrypoint.sh && chmod +x /entrypoint.shEXPOSE 22ENTRYPOINT ["/entrypoint.sh"]
创建镜像
docker build -t py-ssh .
运行容器
docker run -d --name my_ssh -p 2222:22 -e ROOT_PASSWORD='Password123' py-ssh
连接容器
ssh root@localhost -p 2222
进去之后输入上面生成的密码 Password123
