配置Dcoker+Python在VS Code

引言

相信大家都或多或少听过vs code这个东西,它不仅有好看的界面,还有飞快的启动速度与令人舒适的深色模式配色。那么如果我们担心本地数据的安全或者需要多人合作一个项目,那就很需要一个公共的环境让大家发挥。

本文讲详细讲解如何安装Docker配置Python环境并且通过vs code的远程连接连接到远程工作区。

准备工作

  • 一台服务器或者一个Linux环境
  • 畅通无阻的网络但愿你能听懂或者Docker的镜像站(下文我会展示
  • 狂妄的自信心

正文

安装Docker

首先区分一下Docker的服务端和客户端

Docker 服务端 客户端
名称 docker.io docker-cli

我们需要安装的是Docker的服务端

sudo apt install docker.io

验证安装

docker --version

配置Docker自启动

sudo systemctl enable docker
sudo systemctl start docker

配置自己的image

我们可以通过Dcokerfile来配置自己的镜像,免得每次都要apt一堆东西
本文的环境是基于python:3.12-slim-bookworm构建的

换源(可选)

Docker自带的源在国内是上不了一点,所以我们执行换源操作

sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak //备份文件
sudo vim /etc/docker/daemon.json

"registry-mirrors": [" "]的双引号中间添加你自己的镜像地址
本文提供一个地址
> https://mirrors-ssl.aliyuncs.com/

构建Dockerfile

选择一个你喜欢的地方,新建Dockerfile,注意大小写

FROM python:3.12-slim-bookworm

#创建好必须的目录,并且设置权限
RUN mkdir -p /data/workspace /data/tmp \
    && chmod -R 777 /data/workspace /data/tmp

ENV WORKSPACE=/data/workspace
ENV TMPDIR=/data/tmp
ARG TMPDIR=/data/tmp

# 删除默认的 trixie 源
RUN rm -f /etc/apt/sources.list.d/debian.sources

# 换源
RUN printf "%s\n" \
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware" \
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware" \
"deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware" \
"deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware" \
> /etc/apt/sources.list \
&& apt update

# 安装基础依赖(Debian 系)
RUN apt update && apt install -y \
    openssh-server --no-install-recommends \
    curl unzip git wget vim \
    locales \
    fonts-noto-cjk \
    tzdata \
    webp \
    && apt clean \
    && rm -rf /var/lib/apt/lists/*

# 配置 SSH 通过公钥-密钥连接更安全
RUN mkdir /var/run/sshd \
    && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
    && sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config \
    && sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config \
    && sed -i 's/#Port 22/Port 2234/' /etc/ssh/sshd_config \
    && sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config \
    && sed -i 's/#AuthorizedKeysFile/AuthorizedKeysFile/' /etc/ssh/sshd_config \
    && sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

# 生成中文 locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \
    && sed -i '/zh_CN.UTF-8/s/^# //g' /etc/locale.gen \
    && locale-gen

# 字符集环境变量
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# pip 国内源
RUN mkdir -p /root/.pip \
    && python -m pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --upgrade pip \
    && pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

# 创建工作目录
WORKDIR $WORKSPACE
RUN mkdir -p $WORKSPACE $TMPDIR \
    && chmod -R 777 $WORKSPACE $TMPDIR

# 暴露 SSH 端口
EXPOSE 2234

# 启动 SSH 服务
CMD ["/usr/sbin/sshd", "-D"]

保存后构建镜像

sudo docker build -t 镜像名称:版本 .

接下来编写docker-compose.yml用于创建容器

services:
        python:
                image: 镜像名称:版本
                container_name: 容器名称
                network_mode: bridge ##建议使用bridge网络模式
                restart: always
                working_dir: /root/
                volumes:
                        - ~/code/:/root/code/ ##左边是主机目录右边是容器目录
                tty: true
                stdin_open: true
                ports:
                        - "2234:2234" ##SSH端口

创建容器

sudo docker compose up -d
sudo docker ps

如果你能看到像这样就是容器跑起来了,我的容器叫vscode

配置SSH

在本地电脑打开powershell生成公钥密钥

ssh-keygen -t ed25519 -C "备注"

来生成一个公钥文件id_ed25519.pub和密钥文件id_ed25519,接着把公钥文件的内容复制,进入容器的bash

sudo docker exec -it 容器名称 bash
echo "你的公钥内容" > ~/.ssh/authorized_keys

退出容器后重启容器docker restart 你的容器名

vscode连接

点击vscode界面最左下角的远程连接按钮

点击顶部搜索栏的连接到主机-添加新的SSH主机

输入root@服务器IP -p 2234连接即可

结尾

本文清晰明白的介绍了如何在docker中配置Python环境,选用docker的原因很重要的就是它的可迁移性,就是你电脑上能跑服务器也能跑,不用花时间不停的apt isntall,如果大家有什么问题尽情在评论区提出来,作者是个活人,经常看的,你们的关注就是我最大的动力

作者: Walker BaoZhi
连接: https://chihiro.host/2026/02/13/%e9%85%8d%e7%bd%aedcokerpython%e5%9c%a8vs-code/
转载请注明出处!!!!
❤️ 1

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇