- 通过 Dockerfile 构建支持 SSH 的 Python 镜像。
- 运行容器并映射 SSH 端口。
- 使用 SSH 远程连接容器。
一、源码安装python3.13.2
-
下载安装包
wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgz1
-
安装依赖
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel1
-
解压
tar -zxvf Python-3.13.2.tgz1
-
跳转到解压后的目录
cd Python-3.13.21
-
配置加载项
./configure --with-ssl1
-
编译安装
make && make install
-
检查版本
python3 --version
二、安装docker
docker.sh文件上传到虚拟主机的家目录
在window上的cmd执行
scp docker.sh root@10.1.1.58:~
在linux上查看文件
ls -l ~
检查yum环境,并且要求安装了epel-release
source docker.sh
脚本执行完成之后,配置镜像,daemon.josn上传到虚拟主机的/etc/docker目录
scp daemon.json root@10.1.1.58:/etc/docker/
检查文件
ls /etc/docker/daemon.json
echo $? 输出0 就是存在文件
三、拉取python镜像
启动docker服务
systemctl enable --now docker
查看docker镜像列表
docker images
拉取镜像
docker pull python
再次查看镜像列表
docker images
四、使用python镜像完成工作任务
- 使用python镜像创建容器
docker run -itd -v /data:/data python:latest
- #通过docker的run指令,创建一个类似linux的容器,这个容器中的python环境已经搭建完善
#-i -t -d 在后台运行并且能够宿主机进行交互
#-v 挂在一个目录和宿主机共享文件
#python 是镜像名 latest (3.0)是镜像的版本 这个可以在镜像列表中查看
当容器创建成功以后,会创建一个hash码,可以记住前四位方便我们调用容器
- 查看正在使用的容器
docker ps
- 这个容器实际上是一i个小小的linux系统,他寄宿在我们的虚拟主机上,所以相对docker 容器,我们的虚拟主机会被成为宿主机。管理docker容器
docker exec -it 5 /bin/bash
- 由于在创建容器的时候,挂在一个data目录,所以,进入容器之后对data中的文件修改,也会同步到宿主机,反之亦然。
docker exec -it 4 /bin/bash1
docker exec -it 41 /bin/bash
root@41xxxxx:/# touch /data/abcd.txt
root@41xxxxx:/# echo 'dajiahao,woshizhazhahui' > /data/abcd.txt
#退出容器,回到宿主机
exit
[root@hostname ~] # cat /data/abcd.txt

五、docker python:latest(3.0)镜像 允许ssh远程
- 跳转到家目录
cd
- 创建pythonsshdockerfile
mkdir pythonsshdockerfile
- 跳转pythonsshdockerfile
cd pythonsshdockerfile
- 创建Dockerfile文件
vim Dockerfile
首先,你需要创建一个 Dockerfile 来基于 python:latest 镜像构建一个新的镜像,该镜像会安装 SSH 服务并进行相应配置。
# 使用 python:latest 作为基础镜像
# 如果我的镜像列表中没有python:latest镜像,在执行Dockerfile的时候,会自动拉取
FROM python:latest
# 更新系统并安装 SSH 服务
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
# 设置 root 用户密码
RUN echo 'root:root' | chpasswd
# 允许 root 用户通过 SSH 登录
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH 服务监听端口
EXPOSE 22
# 启动 SSH 服务
# 在前台执行sshd的指令,如果前台的进程消失,那么容器自动进入exited
CMD ["/usr/sbin/sshd", "-D"]
- 解释:
FROM python:latest:指定基础镜像为 python:latest。
RUN apt-get update && apt-get install -y openssh-server:更新系统并安装 SSH 服务。
RUN mkdir /var/run/sshd:创建 SSH 服务所需的运行目录。
RUN echo 'root:password' | chpasswd:设置 root 用户的密码为 password,你可以根据需要修改。
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config:修改 SSH 配置文件,允许 root 用户通过 SSH 登录。
EXPOSE 22:声明容器将监听 22 端口(SSH 默认端口)。
CMD ["/usr/sbin/sshd", "-D"]:启动 SSH 服务。
- 根据Dockerfile创建新的镜像,构建镜像
docker build -t python-ssh:3.0 .
- 解释:
docker build:用于构建 Docker 镜像。
-t python-ssh:latest:指定镜像的标签为 python-ssh:latest。
.:指定 Dockerfile 所在的上下文路径为当前目录。
- 运行容器
使用以下命令运行新构建的镜像:
docker run -d -p 2222:22 python-ssh:3.0
- 解释:
docker run:用于运行 Docker 容器。
-d:以守护进程模式运行容器。
-p 2222:22:将宿主机的 2222 端口映射到容器的 22 端口。
python-ssh:latest:指定要运行的镜像。

- 查看镜像
docker images
- 远程测试
- windows终端测试