最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker+Vscode搭建(本地/遠程)開發(fā)環(huán)境

 更新時間:2025年12月19日 08:22:47   作者:Linux編程用C  
本文介紹了使用Docker+VSCode搭建統(tǒng)一開發(fā)環(huán)境的完整方案,文中通過圖文示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

日常開發(fā)中,環(huán)境配置一直是令人頭疼的問題 —— 不同機器的依賴版本不一致、本地環(huán)境與生產(chǎn)環(huán)境差異大、多語言開發(fā)環(huán)境沖突…… 而 Docker+VSCode 的組合能完美解決這些痛點:用 Docker 封裝統(tǒng)一的開發(fā)環(huán)境,通過 VSCode 遠程連接實現(xiàn)本地 / 遠程一致的開發(fā)體驗。本文就手把手教你搭建基于 Ubuntu 24.04 的多語言(Python/Rust等)開發(fā)容器,并配置 VSCode 遠程開發(fā)環(huán)境。

一前置準備:安裝docker環(huán)境

首先需要在本地環(huán)境安裝 Docker 服務,支持 Linux、Windows、MacOS 三大系統(tǒng): Linux:直接通過系統(tǒng)包管理器安裝(如apt install docker.io),安裝后記得啟動 Docker 服務并配置用戶權(quán)限(避免每次用sudo); Windows/MacOS:下載Docker Desktop (https://www.docker.com/products/docker-desktop/),安裝后啟動即可(自動配置環(huán)境變量和服務)。 驗證安裝是否成功:

docker --version  # 輸出Docker版本號即成功
docker compose version  # 驗證Compose工具(新版Docker已內(nèi)置)

二、定制開發(fā)鏡像:封裝統(tǒng)一環(huán)境

  1. 拉取基礎鏡像 先拉取 Ubuntu 24.04 官方鏡像,作為定制的基礎:

docker pull ubuntu:24.04 
  1. 編寫Dockerfile 定制鏡像 在空目錄下創(chuàng)建Dockerfile文件,復制以下內(nèi)容(或者更加自己的需求在RUN 修改自己需要安裝的服務環(huán)境): 安裝基礎服務及相關(guān)開發(fā)運行環(huán)境。

FROM ubuntu:24.04 
 
ENV WORKSPACE=/data/workspace
ENV TMP_DIR=/data/temp
ARG TMP_DIR=/data/temp
 
# 安裝基礎依賴 + SSH 服務 + 工具鏈(移除 zsh,強化 bash)
RUN apt update && \
    apt install -y \
    # 基礎工具(移除 zsh,保留 bash 并設為默認)
    curl unzip bash git wget \
    openssh-server \
    vim \
    webp \
    locales \
    fonts-noto-cjk \
    tzdata \
    # Python 環(huán)境依賴
    python3 python3-pip python3-venv python3-dev python3-full \
    python3-setuptools python3-wheel pipx \
    # Rust 編譯依賴
    build-essential libssl-dev pkg-config && \
    # 設置 bash 為默認 shell(替代 zsh)
    chsh -s /bin/bash && \
    # 清理緩存減小鏡像體積
    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
 
# 生成中文 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
 
# 字符集環(huán)境變量
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8
 
# 設置時區(qū)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 
# ========== Python 環(huán)境增強(使用虛擬環(huán)境規(guī)避 PEP 668 限制) ==========
# 創(chuàng)建 Python 虛擬環(huán)境并激活(全局生效)
RUN mkdir -p ${WORKSPACE}/.venv && \
    python3 -m venv ${WORKSPACE}/.venv && \
    # 激活虛擬環(huán)境的環(huán)境變量(僅寫入 bashrc,移除 zshrc)
    echo ". ${WORKSPACE}/.venv/bin/activate" >> /root/.bashrc && \
    # 給虛擬環(huán)境腳本添加執(zhí)行權(quán)限
    chmod +x ${WORKSPACE}/.venv/bin/activate
 
# 配置 pip 鏡像源(國內(nèi)加速)
RUN mkdir -p /root/.config/pip && \
    echo "[global]" > /root/.config/pip/pip.conf && \
    echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.config/pip/pip.conf && \
    echo "trusted-host = pypi.tuna.tsinghua.edu.cn" >> /root/.config/pip/pip.conf
# 激活虛擬環(huán)境并更新 pip + 安裝常用包
RUN . ${WORKSPACE}/.venv/bin/activate && \
    python3 -m pip install --upgrade pip && \
    pip install numpy pandas requests flask fastapi uvicorn black isort pytest
 
# ========== Rust 環(huán)境安裝 ==========
# 安裝 rustup(Rust 官方安裝工具)
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \
    # 手動加載 rustup 環(huán)境變量
    . /root/.cargo/env && \
    # 立即更新 Rust 并設置默認版本
    rustup update stable && \
    rustup default stable && \
    # 安裝常用 Rust 組件
    rustup component add rustfmt clippy rust-analyzer
 
# 配置 Rust 環(huán)境變量(讓容器運行時可用 rustc/cargo)
ENV PATH="/root/.cargo/bin:${PATH}"
 
# 設置 Rust 鏡像源(國內(nèi)加速)
RUN mkdir -p /root/.cargo && \
    echo "[source.crates-io]" > /root/.cargo/config.toml && \
    echo 'replace-with = "rsproxy"' >> /root/.cargo/config.toml && \
    echo "[source.rsproxy]" >> /root/.cargo/config.toml && \
    echo 'registry = "https://rsproxy.cn/crates.io-index"' >> /root/.cargo/config.toml && \
    echo "[registries.rsproxy]" >> /root/.cargo/config.toml && \
    echo 'index = "https://rsproxy.cn/crates.io-index"' >> /root/.cargo/config.toml && \
    echo "[net]" >> /root/.cargo/config.toml && \
    echo 'git-fetch-with-cli = true' >> /root/.cargo/config.toml
# 設置工作目錄
WORKDIR $WORKSPACE
 
# 暴露 SSH 端口
EXPOSE 2234
 
# 啟動命令:bash 執(zhí)行,激活虛擬環(huán)境后啟動 SSH 服務
CMD ["/bin/bash", "-c", ". ${WORKSPACE}/.venv/bin/activate && /usr/sbin/sshd -D"]
  1. 構(gòu)建鏡像 根據(jù)dockerfile制作鏡像:在Dockerfile同級目錄下執(zhí)行這個目錄,生成devbox:latest鏡像

docker build -t devbox:latest . 

構(gòu)建完成后,執(zhí)行docker images可看到devbox:latest鏡像,說明構(gòu)建成功。

三、配置容器啟動:Docker Compose

編寫一個名為docker-compose.yml的文件(默認名字),內(nèi)容如下,指定相關(guān)的啟動信息

services:
  devbox:
    image: devbox:latest  # 使用剛構(gòu)建的鏡像
    container_name: devbox  # 容器名稱,方便管理
    #network_mode: host window和macOs不能使用host模式,Mac/Windows 的 Docker Desktop 基于 Linux 虛擬機,host網(wǎng)絡模式無效
    restart: always  # 宿主機重啟后自動啟動容器
    working_dir: /root/  # 容器默認工作目錄
    volumes:
      # 掛載本地目錄到容器內(nèi),實現(xiàn)代碼同步(關(guān)鍵?。?
      - ${PWD}/:/root/workspace/
    tty: true  # 保持終端連接
    stdin_open: true  # 允許標準輸入
    # 端口映射(核心:宿主機端口→容器端口)
    # 注意:Mac/Windows不建議用network_mode: host,bridge模式更穩(wěn)定
    ports:
      - "2234:2234"  # SSH端口映射,用于VSCode遠程連接
      # 可按需添加其他端口映射,例如:
      # - "8080:8080"  # Web服務端口
      # - "8000:8000"  # FastAPI服務端口
    # 可選:增加容器資源限制
    # deploy:
    #   resources:
    #     limits:
    #       cpus: '2'
    #       memory: 4G

四、啟動開發(fā)容器

在docker-compose.yml同級目錄下執(zhí)行如下命令啟動容器,容器名字:devbox

docker compose up -d 
  • -d:后臺運行容器,不占用當前終端;

  • 啟動后執(zhí)行docker ps,可看到devbox容器狀態(tài)為Up,說明啟動成功。

  • 設置容器 root 密碼(首次連接必備) 啟動容器后,需要設置 root 密碼才能通過 SSH 連接:

# 進入容器內(nèi)部
docker exec -it devbox bash
# 設置root密碼(輸入兩次相同密碼即可)
passwd root
# 退出容器
exit

五、搭建vscode遠程連接開發(fā)環(huán)境

容器啟動后,即可通過 VSCode 的「遠程 SSH」插件連接容器,實現(xiàn)本地編輯、容器內(nèi)運行的開發(fā)。

  1. 安裝 VSCode 插件 打開 VSCode,安裝以下核心插件:

Remote - SSH:實現(xiàn)遠程 SSH 連接(必裝);

  1. 配置SSH遠程連接信息 點擊左下角連接,然后配置SSH主機:

    根據(jù)實際主機地址進行如下內(nèi)容填寫,保存。

  2. 啟動遠程連接 配置完成后,重新打開vscode,選擇對應docker地址進行連接:

輸入前面設置的密碼:

成功連接上docker容器環(huán)境:

六、遠程服務器部署(擴展)

如果需要在遠程服務器搭建相同環(huán)境,只需:

  1. 將Dockerfile、docker-compose.yml上傳到遠程服務器;

  2. 服務器安裝 Docker 環(huán)境后,執(zhí)行docker build -t devbox:latest .和docker compose up -d;

  3. VSCode 連接時,將localhost替換為遠程服務器 IP,其余步驟一致。

七、總結(jié)

通過 Docker 封裝統(tǒng)一的開發(fā)環(huán)境,結(jié)合 VSCode 遠程 SSH 連接,我們實現(xiàn)了:

  • 環(huán)境一致性:本地 / 遠程服務器使用相同的鏡像,避免 “本地能跑、線上報錯”;
  • 多語言兼容:Python/Rust 環(huán)境隔離,無需擔心系統(tǒng)依賴沖突;
  • 便捷部署:一行命令啟動 / 停止環(huán)境,跨平臺適配 Linux/Mac/Windows。 這套方案既適合個人開發(fā),也可團隊共享鏡像,大幅降低環(huán)境配置成本,讓我們專注于代碼本身開發(fā)工作。

到此這篇關(guān)于Docker+Vscode搭建(本地/遠程)開發(fā)環(huán)境的文章就介紹到這了,更多相關(guān)Docker+Vscode本地/遠程搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker system命令集合的使用

    docker system命令集合的使用

    本文主要介紹了docker system命令集合的使用,主要包括清理沒有使用的數(shù)據(jù),包括鏡像數(shù)據(jù),已經(jīng)停止的容器等等,具有一定的參考價值,感興趣的可以了解下
    2021-10-10
  • Docker stop停止/remove刪除所有容器

    Docker stop停止/remove刪除所有容器

    這篇文章主要介紹了Docker stop停止/remove刪除所有容器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • docker容器日志時間不一致問題

    docker容器日志時間不一致問題

    這篇文章主要介紹了docker容器日志時間不一致問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Docker環(huán)境下快速部署Ollama與Open-WebUI的詳細指南

    Docker環(huán)境下快速部署Ollama與Open-WebUI的詳細指南

    在本篇文章中,我們將深入探討如何在Docker中高效部署 Ollama 和 Open-WebUI,并解決在實際使用中常見的問題,有需要的小伙伴可以跟隨小編一起學習一下
    2026-03-03
  • Docker Compose一鍵部署LNMP環(huán)境詳細過程

    Docker Compose一鍵部署LNMP環(huán)境詳細過程

    LNMP通常包括Nginx作為Web服務器,MySQL作為數(shù)據(jù)庫,PHP處理動態(tài)內(nèi)容,可能還需要phpMyAdmin進行數(shù)據(jù)庫管理,今天給大家介紹下Docker Compose一鍵部署LNMP環(huán)境的詳細過程,感興趣的朋友一起看看吧
    2025-04-04
  • docker安裝redis掛載容器卷同時開啟持久化

    docker安裝redis掛載容器卷同時開啟持久化

    本文主要介紹了docker安裝redis掛載容器卷同時開啟持久化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Docker無法登錄與推送問題解決的詳細教程

    Docker無法登錄與推送問題解決的詳細教程

    這篇文章主要介紹了如何使用阿里云容器鏡像服務來解決國內(nèi)訪問Docker?Hub速度慢的問題,并詳細描述了如何設置阿里云鏡像服務、配置Docker、操作鏡像(包括pull和push)以及測試拉取鏡像的過程,需要的朋友可以參考下
    2025-02-02
  • Linux服務器安裝Docker,啟動失敗問題的解決

    Linux服務器安裝Docker,啟動失敗問題的解決

    這篇文章主要介紹了Linux服務器安裝Docker,啟動失敗問題的解決方案,具有很好的參考價值,希望對大家有所幫助。
    2023-04-04
  • docker-compose部署MySQL8的實現(xiàn)

    docker-compose部署MySQL8的實現(xiàn)

    本文主要介紹了docker-compose部署MySQL8的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • Docker之實現(xiàn)掛載的三種方式匯總

    Docker之實現(xiàn)掛載的三種方式匯總

    這篇文章主要介紹了Docker之實現(xiàn)掛載的三種方式匯總,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

怀远县| 西盟| 无极县| 万宁市| 周至县| 肇东市| 宝坻区| 泽库县| 乃东县| 德庆县| 闸北区| 江源县| 玉屏| 溆浦县| 珠海市| 高淳县| 新竹市| 邵阳市| 三门县| 兰州市| 景德镇市| 上蔡县| 琼结县| 宜阳县| 彭水| 大邑县| 山西省| 云龙县| 襄汾县| 沅陵县| 宝山区| 简阳市| 三河市| 莱州市| 隆昌县| 宜兰市| 东港市| 曲阜市| 镇沅| 壶关县| 崇明县|