【Docker】通过 Docker 拉取 Python 镜像并设置远程连接(SSH)

  1. 通过 Dockerfile 构建支持 SSH 的 Python 镜像。
  2. 运行容器并映射 SSH 端口。
  3. 使用 SSH 远程连接容器。

一、源码安装python3.13.2

  1. 下载安装包

    wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgz1

  2. 安装依赖

    sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel1

  3. 解压

    tar -zxvf Python-3.13.2.tgz1

  4. 跳转到解压后的目录

    cd Python-3.13.21

  5. 配置加载项

    ./configure --with-ssl1

  6. 编译安装

    make && make install

  7. 检查版本

    python3 --version

二、安装docker

docker.sh文件上传到虚拟主机的家目录

在window上的cmd执行

scp docker.sh root@10.1.1.58:~

在linux上查看文件

ls -l ~

检查yum环境,并且要求安装了epel-release

使用source直接执行docker.sh

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镜像完成工作任务

  1. 使用python镜像创建容器

docker run -itd -v /data:/data python:latest

  • #通过docker的run指令,创建一个类似linux的容器,这个容器中的python环境已经搭建完善
    #-i -t -d 在后台运行并且能够宿主机进行交互
    #-v 挂在一个目录和宿主机共享文件
    #python 是镜像名 latest (3.0)是镜像的版本 这个可以在镜像列表中查看

当容器创建成功以后,会创建一个hash码,可以记住前四位方便我们调用容器

  1. 查看正在使用的容器

docker ps

  1. 这个容器实际上是一i个小小的linux系统,他寄宿在我们的虚拟主机上,所以相对docker 容器,我们的虚拟主机会被成为宿主机。管理docker容器

docker exec -it 5 /bin/bash

  1. 由于在创建容器的时候,挂在一个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远程

  1. 跳转到家目录

cd

  1. 创建pythonsshdockerfile

mkdir pythonsshdockerfile

  1. 跳转pythonsshdockerfile

cd pythonsshdockerfile

  1. 创建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 服务。
  1. 根据Dockerfile创建新的镜像,构建镜像

docker build -t python-ssh:3.0 .

  • 解释:
    docker build:用于构建 Docker 镜像。
    -t python-ssh:latest:指定镜像的标签为 python-ssh:latest。
    .:指定 Dockerfile 所在的上下文路径为当前目录。


  1. 运行容器
    使用以下命令运行新构建的镜像:

docker run -d -p 2222:22 python-ssh:3.0

  • 解释:
    docker run:用于运行 Docker 容器。
    -d:以守护进程模式运行容器。
    -p 2222:22:将宿主机的 2222 端口映射到容器的 22 端口。
    python-ssh:latest:指定要运行的镜像。
  1. 查看镜像

docker images

  1. 远程测试
  • windows终端测试
相关推荐
编程指南针1 小时前
2026新选题-基于Python的老年病医疗数据分析系统的设计与实现(数据采集+可视化分析)
开发语言·python·病历分析·医疗病历分析
计算机小手2 小时前
内网穿透系列十四:基于Websocket传输协议实现的异地组网工具 candy,简单安全稳定
经验分享·网络协议·docker·开源软件
reasonsummer2 小时前
【办公类-116-01】20250929家长会PPT(Python快速批量制作16:9PPT相册,带文件名,照片横版和竖版)
java·数据库·python·powerpoint
拉姆哥的小屋2 小时前
基于提示学习的多模态情感分析系统:从MULT到PromptModel的华丽升级
python·深度学习·学习
蒋星熠3 小时前
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
运维·人工智能·爬虫·python·深度学习·机器学习·自动化
大翻哥哥5 小时前
Python 2025:异步革命与AI驱动下的开发新范式
开发语言·人工智能·python
Molesidy5 小时前
【Docker】基于Ubuntu的Docker的日常使用方法
nginx·ubuntu·docker
hhzz5 小时前
Pythoner 的Flask项目实践-在web页面实现矢量数据转换工具集功能(附源码)
前端·python·flask
学习的学习者6 小时前
CS课程项目设计19:基于DeepFace人脸识别库的课堂签到系统
人工智能·python·深度学习·人脸识别算法
悠哉悠哉愿意6 小时前
【数据结构与算法学习笔记】双指针
数据结构·笔记·python·学习·算法