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

docker打包本地conda虛擬環(huán)境并遠程部署的詳細過程

 更新時間:2026年03月23日 15:21:51   作者:Uncertainty!!  
這篇文章給大家介紹docker打包本地conda虛擬環(huán)境并遠程部署的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

由于我的實驗代碼在某些數(shù)據(jù)集上經(jīng)常OOM,所以我想把本地環(huán)境直接打包為docker,以便在遠程服務器上直接運行

將本地復雜的深度學習環(huán)境(尤其是涉及 CUDA 的 GS-SLAM 項目)遷移到遠程服務器,使用 Docker 是最穩(wěn)妥的選擇。這能避免遠程服務器上驅動、庫版本不一致導致的“環(huán)境地獄”。

為了保證效率,建議遵循以下流程:構建基礎鏡像 -> 導出 Conda 環(huán)境 -> 映射代碼與數(shù)據(jù)。

第一階段:本地準備(Docker 化)

不要直接把幾百 GB 的數(shù)據(jù)打包進鏡像,這樣鏡像會臃腫且不可移植。我們只把 環(huán)境 打包。

1.導出 Conda 環(huán)境

conda activate my2dgsslam
conda env export > environment.yml

將environment.yml中的pip部分復制粘貼到requirement.txt

addict
appdirs
argcomplete
attrs
backcall
click
comm
configargparse
cycler
dash
dash-core-components
dash-html-components
dash-table
decorator
docker-pycreds
evo
fastjsonschema
flask
fonttools
gitdb
gitpython
glfw
imageio
imgviz
importlib-metadata
importlib-resources
ipython
ipywidgets
itsdangerous
jedi
jinja2
joblib
jsonschema
jupyter-core
jupyterlab-widgets
kiwisolver
lietorch
lpips
markdown-it-py
markupsafe
matplotlib
matplotlib-inline
mdurl
munch
natsort
nbformat
nest-asyncio
open3d
opencv-python
packaging
pandas
parso
pexpect
pickleshare
pillow
pkgutil-resolve-name
platformdirs
plotly
prompt-toolkit
protobuf
psutil
ptyprocess
pyglm
pygments
pyopengl
pyparsing
pyquaternion
pyrsistent
python-dateutil
pytz
pyyaml
retrying
rich
ruff
scikit-learn
scipy
seaborn
sentry-sdk
setproctitle
smmap
tenacity
threadpoolctl
torchmetrics
traitlets
trimesh
wandb
wcwidth
werkzeug
widgetsnbextension
zipp

2.構建dockerfile

# 1. 基礎鏡像:Ubuntu 22.04 + CUDA 11.8 (完美支持 H20 的 sm_90 架構)
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
# 2. 避免交互式安裝,設置時區(qū)為東八區(qū)
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai
# 3. 替換 apt 源為阿里云
RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
# 4. 安裝基礎依賴
RUN apt-get update && apt-get install -y \
    wget curl git tzdata build-essential ninja-build \
    libgl1-mesa-glx libglib2.0-0 \
    && ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime \
    && dpkg-reconfigure --frontend noninteractive tzdata \
    && rm -rf /var/lib/apt/lists/*
# 5. 安裝 Miniconda
RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh && \
    bash /tmp/miniconda.sh -b -p /opt/conda && \
    rm /tmp/miniconda.sh
ENV PATH=/opt/conda/bin:$PATH
# 6. 配置 Conda 和 Pip 國內源
RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ && \
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ && \
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
WORKDIR /workspace
#接受tos條款
RUN conda tos accept
# 7. 創(chuàng)建 Python 3.9 純凈環(huán)境
RUN conda create -n 2dgsslam python=3.9 -y && \
    conda clean -afy
RUN echo "source /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
    echo "conda activate 2dgsslam" >> ~/.bashrc
# 8. 核心步驟:顯式安裝 PyTorch 2.1.2 (cu118 版本)
RUN /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh && conda activate 2dgsslam && \
    pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118"
# 9. 復制并安裝其他第三方庫 (僅復制依賴文件,不包含項目代碼)
COPY requirements.txt .
RUN /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh && conda activate 2dgsslam && \
    pip install -r requirements.txt"
# 10. H20 算力架構聲明 (sm_90)
# 雖然這里不編譯,但設置這個環(huán)境變量可以確保后續(xù)你手動編譯時,nvcc 編譯器直接生成 H20 的原生機器碼
ENV TORCH_CUDA_ARCH_LIST="9.0"
# 默認啟動 bash
CMD ["/bin/bash"]

3.構建docker鏡像

我們構建docker時不是用代理,取消一下代理設置

ls /etc/systemd/system/docker.service.d/

刪除

ls /etc/systemd/system/docker.service.d/

刪除文件前可以備份,請刪除以下文件

http-proxy.conf
https-proxy.conf
sudo rm -rf /etc/systemd/system/docker.service.d/*

查看配置文件

cat /etc/docker/daemon.json

修改daemon.json為以下內容,注釋或刪除關于proxy的命令

{
  "runtimes": {
    "nvidia": {
      "args": [],
      "path": "nvidia-container-runtime"
    }
  },
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://mirror.aliyuncs.com"
  ]
}

重載 systemd + 重啟 Docker

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

確認代理真的消失

docker info | grep -i proxy

無任何輸出

接下來構建docker

docker build -t 2dgsslam_base:v1 .

測試一下
先驗證 GPU 是否可用(非常重要)
運行容器:

sudo docker run --gpus all -it 2dgsslam_base:v1

進入后測試:

nvidia-smi

測試 PyTorch GPU
在容器里:

import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))

正常輸出應該是:
True
NVIDIA H20 / A100 / etc.

第二階段:保存docker鏡像上傳到遠程服務器

先將鏡像導出為tar文件

docker save -o 2dgsslam_base_v1.tar 2dgsslam_base:v1

目前遠程服務器只接收tar.gz 壓縮包
要將 Docker 鏡像保存為 tar.gz 壓縮包,核心是先將鏡像導出為 tar 文件,再用壓縮工具打包成 tar.gz

查看要保存的鏡像名稱 / ID
先確認鏡像的準確標識(名稱 + 標簽 或 ID)

docker images

將 tar 壓縮為 tar.gz
用 gzip 命令壓縮(壓縮后體積更小,便于傳輸 / 存儲):

# 格式:gzip 要壓縮的tar文件
gzip my_image.tar
# 執(zhí)行后會生成 my_image.tar.gz,原 tar 文件會被刪除
# 若想保留原 tar 文件,加 -k 參數(shù):gzip -k my_image.tar

文件權限不夠,導致無法上傳至遠程服務器

-rw-------  1 root      root      12400622118 Mar 21 13:03 2dgsslam_base_v1.tar.gz

修改文件權限

sudo chmod 644 2dgsslam_base_v1.tar.gz

使用sftp連接服務器

sftp 用戶名@yourIP

上傳鏡像

put -r 本地文件路徑 遠程路徑

鏡像已經(jīng)上傳到服務器上

在服務器網(wǎng)頁控制頁面導入鏡像

導入完成

第三階段:掛載項目目錄運行

在服務器控制頁面創(chuàng)建開發(fā)環(huán)境選擇剛剛導入的鏡像

啟動命令

sudo docker run --gpus all -it -v /服務器上項目路徑/SA-GS-SLAM:/workspace 2dgsslam_base:v1
cd /workspace

第四階段:vscode遠程連接

ssh連接遠程服務器docker

到此這篇關于docker打包本地conda虛擬環(huán)境并遠程部署的文章就介紹到這了,更多相關docker打包本地conda虛擬環(huán)境內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • docker打包本地conda虛擬環(huán)境并遠程部署的詳細過程

    docker打包本地conda虛擬環(huán)境并遠程部署的詳細過程

    這篇文章給大家介紹docker打包本地conda虛擬環(huán)境并遠程部署的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-03-03
  • docker-compose安裝redis集群教程

    docker-compose安裝redis集群教程

    本文介紹了使用Docker Compose部署Redis集群的步驟:編寫配置文件設置端口和密碼,創(chuàng)建數(shù)據(jù)卷目錄,啟動容器并檢查狀態(tài),若集群創(chuàng)建失敗,需手動進入容器執(zhí)行redis-cli命令,處理密碼認證及數(shù)據(jù)清空問題以完成集群配置
    2025-08-08
  • 使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細步驟

    使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細步驟

    現(xiàn)如今,通過 Docker 容器化部署環(huán)境已經(jīng)逐漸成為主流,特別是在部署像 LAMP 這樣的復雜環(huán)境時,本教程旨在帶您完成使用 Docker-Compose 建立 LAMP 環(huán)境的整個過程,同時還包括定制 PHP 環(huán)境的步驟,需要的朋友可以參考下
    2024-12-12
  • docker鏡像倉庫hub.docker.com無法訪問的解決方法

    docker鏡像倉庫hub.docker.com無法訪問的解決方法

    最近許多群友都詢問為什么無法訪問Docker鏡像倉庫,本文就來介紹一下docker鏡像倉庫hub.docker.com無法訪問的解決方法,感興趣的可以了解一下
    2023-08-08
  • Docker環(huán)境搭建的簡單方法

    Docker環(huán)境搭建的簡單方法

    這篇文章主要給大家介紹了關于Docker環(huán)境搭建的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Docker給容器添加新端口映射兩種方法及常用命令

    Docker給容器添加新端口映射兩種方法及常用命令

    在使用Docker時容器的端口映射是一個核心概念,它允許容器與宿主機以及外部網(wǎng)絡進行通信,這篇文章主要給大家介紹了關于Docker給容器添加新端口映射兩種方法及常用命令的相關資料,需要的朋友可以參考下
    2024-07-07
  • 如何查看docker run啟動參數(shù)命令(推薦)

    如何查看docker run啟動參數(shù)命令(推薦)

    這篇文章主要介紹了如何查看docker run啟動參數(shù)命令,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 從入門到實戰(zhàn)全面解析Docker鏡像常用命令

    從入門到實戰(zhàn)全面解析Docker鏡像常用命令

    Docker 作為容器化技術的標桿工具,其鏡像管理能力是實現(xiàn)高效 CI/CD 流程的核心,本文將為大家?guī)鞤ocker 鏡像常用命令的全方位解析,希望對大家有所幫助
    2025-11-11
  • 常用Docker命令總結大全

    常用Docker命令總結大全

    這篇文章主要介紹了常用Docker命令總結大全的相關資料,需要的朋友可以參考下
    2026-01-01
  • docker-compose部署nacos 2.2.3的詳細過程

    docker-compose部署nacos 2.2.3的詳細過程

    這篇文章主要介紹了docker-compose部署nacos 2.2.3的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11

最新評論

绍兴县| 罗城| 海林市| 且末县| 南投县| 武功县| 鲁甸县| 揭西县| 宜兴市| 林口县| 马尔康县| 汉寿县| 襄城县| 西青区| 安龙县| 南涧| 崇州市| 宣化县| 延庆县| 额济纳旗| 万年县| 永兴县| 巫溪县| 上杭县| 阳城县| 灵石县| 斗六市| 公安县| 青海省| 穆棱市| 雷州市| 桃源县| 剑川县| 广安市| 蕉岭县| 普宁市| 德清县| 鲜城| 望都县| 常宁市| 达日县|