Docker中conda環(huán)境的導(dǎo)出和導(dǎo)入
1、常用命令:
docker pull -- 從遠(yuǎn)程倉(cāng)庫(kù)將鏡像下載至本地 docker run -- 運(yùn)行一個(gè)容器 docker images -- 常看本地鏡像 docker ps -- 查看容器,默認(rèn)只查看已啟動(dòng)的,加入 "-a" 參數(shù)可以查看所有 docker rm -f ID # 刪除之前的運(yùn)行容器 重命名容器 docker rename old_name new_name 拷貝文件到容器中 docker cp MLP 95909784d85b:/workspace/ 進(jìn)入容器中 docker exec -u 0 -it testtorch /bin/bash docker save保存的是鏡像(image),docker export保存的是容器(container) docker load不能對(duì)載入的鏡像重命名,而docker import可以為鏡像指定新名稱。
2、環(huán)境導(dǎo)出:
Step-1: 安裝docker(可以忽略) Step-2: 拉取anaconda鏡像(docker images檢查看看,已經(jīng)有了的話就跳過(guò)這一步) docker pull continuumio/anaconda3 Step-3: 基于拉取的鏡像創(chuàng)建容器 docker run -i -t continuumio/anaconda3 /bin/bash Step-4-1: cd opt/conda/envs ls(沒(méi)有東西) step-4-2(可選步驟): 退出容器: exit 查看容器名稱:docker ps -a 可以改容器名稱:docker rename great_chaum ljhpytorch 再次查看容器名稱:docker ps -a Step-5: 查看本地anaconda中env的路徑(例如:/home/ljh/anaconda3/envs/pytorch/) Step-6: 可以另起一個(gè)終端 把本地的環(huán)境文件復(fù)制到容器中 docker cp /home/ljh/anaconda3/envs/pytorch/ ljhpytorch:/opt/conda/envs Step-7 啟動(dòng)容器:docker start ljhpytorch 進(jìn)入容器:docker exec -u 0 -it ljhpytorch /bin/bash 查看是否文件已經(jīng)復(fù)制過(guò)來(lái)cd opt/conda/envs ls Step-8: 驗(yàn)證是否能夠使用環(huán)境:source activate 環(huán)境名稱 例如:source activate pytorch Step-9: 運(yùn)用 docker commit 指令將運(yùn)行的容器保存為鏡像。 docker commit container_name image_name(隨便取) 例如:docker commit ljhpytorch ljhpytorchimage docker images可以看到新增了一個(gè)鏡像 Step-10: 鏡像導(dǎo)出: docker save -o image.tar(這個(gè)也可以隨便取名字) image_name 給文件夾或文件全部的權(quán)限:sudo chmod -R 777 ./tao/(選擇修改權(quán)限的文件名稱)
3、兩個(gè)服務(wù)器之間的文件傳輸命令:
scp -r /home/myfile username@192.000.000.000:/home/myfile 其中scp為命令,-r代表移動(dòng)文件,/home/myfile代表源文件夾所在的絕對(duì)路徑,username@192.000.000.000:/home/myfile代表目標(biāo)服務(wù)器中目標(biāo)用戶名的目標(biāo)文件夾。 示例: 【默認(rèn)目標(biāo)服務(wù)器端口22】 scp -r /data/liujiahui/2022/master/ ljh@192.XXX.XXX.XXX:/DataDisk/liujiahui/AllCode/ 如果需要指定目標(biāo)服務(wù)器端口: scp -r -P 5022 /data/liujiahui/2022/master/ ljh@192.XXX.XXX.XXX:/DataDisk/liujiahui/AllCode/ 跳出選項(xiàng),記得輸入yes,然后輸入密碼
4、環(huán)境導(dǎo)入:
Step-1: 鏡像導(dǎo)入 docker load < image.tar Step-2: (掛載的同時(shí)已經(jīng)創(chuàng)建了容器,容器名稱取決于下面的 --name) 掛載宿主機(jī)目錄至容器/data 目錄:(此處需要修改的是宿主機(jī)目錄) 這樣可以便于文件的傳輸共享 示例: docker run -id --gpus all --name ljhcontain -v /home/ljh/Desktop/mydata/:/data/ ljhpytorchimage Step-3: 進(jìn)入容器 docker exec -u 0 -it ljhcontain /bin/bash Step-4: nvidia-smi 查看是否可以使用gpu 完成!
5、快速進(jìn)入容器
正常進(jìn)入容器需要先su進(jìn)入超級(jí)用戶,然后執(zhí)行以下兩個(gè)命令 docker start ljhcontain(有時(shí)候不需要) docker exec -u 0 -it ljhcontain /bin/bash 由于不是很好記憶,因此可以通過(guò)將上述命令直接寫在bash腳本執(zhí)行,步驟如下: Step-1: 創(chuàng)建一個(gè)文件名為xxxx.sh的空文件,可以直接在home/用戶名/下面創(chuàng)建 Step-2: 在文件中寫入下面兩行(記得修改容器名稱),然后保存 docker start ljhcontain docker exec -u 0 -it ljhcontain /bin/bash Step-3: bash xxx.sh 可以直接一步進(jìn)入容器(如下圖所示) 注:還有其他通過(guò)修改環(huán)境變量等方法,感覺(jué)有些麻煩,可以自行研究
6、其他問(wèn)題解決記錄:
1)docker無(wú)法使用gpu,顯示沒(méi)有驅(qū)動(dòng)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit
2)bash: vim: command not found
apt-get update apt-get install -y vim
3)容器進(jìn)入失敗
解決方法: docker start testtorch docker exec -u 0 -it testtorch /bin/bash
4)su進(jìn)入失敗
$ su - root Password: su: Authentication failure Sorry. 解決辦法: $ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
5)pip安裝python包失敗
使用pip安裝python包的時(shí)候,出現(xiàn)以下錯(cuò)誤: bash: /opt/conda/envs/pytorch/bin/pip: /home/ljh/anaconda3/envs/pytorch/bin/python: bad interpreter: No such file or directory 解決方法: 在容器中解決問(wèn)題 step-1:【如下圖所示】 which pip 獲得pip路徑 step-2:【如下圖所示】 which python 獲得python路徑 step-3:【如下圖所示】 vim pip路徑 這里可能會(huì)vim報(bào)錯(cuò),解決方法參考問(wèn)題3 step-4: vim常用操作指令: 按下i表示開始編輯 按下Esc表示保存并退出編輯 退出編輯之后按下:wq可以退出vim 這一步需要完成的是修改把文件第一行的路徑修改為step-2獲取的路徑【如下圖所示】 step-5: 測(cè)試是否成功 pip -V

6)docker中使用cv2失敗
import cv2 出現(xiàn)以下報(bào)錯(cuò): ImportError: libGL.so.1: cannot open shared object file: No such file or directory 解決方法: apt-get update apt-get install ffmpeg libsm6 libxext6 -y
7)訓(xùn)練時(shí)出現(xiàn)共享內(nèi)存不夠(Bus error)
方法一:在Dataloader中將num_worker設(shè)置為0。意味著每一輪迭代時(shí),dataloader不再有自主加載數(shù)據(jù)到RAM這一步驟(因?yàn)闆](méi)有worker了),而是在RAM中找batch,找不到時(shí)再加載相應(yīng)的batch。
方法二:在起Docker容器時(shí),設(shè)置 --ipc=host 或 --shm-size 或者
到此這篇關(guān)于Docker中conda環(huán)境的導(dǎo)出和導(dǎo)入的文章就介紹到這了,更多相關(guān)Docker conda導(dǎo)出導(dǎo)入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝Elasticsearch的實(shí)現(xiàn)示例
本文主要介紹了在Docker環(huán)境下安裝和ockerSearch、Kibana及IK分詞器的步驟,并并包括配置項(xiàng)設(shè)置D以及常用命令使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04
使用 Docker 企業(yè)版搭建自己的私有注冊(cè)服務(wù)器
這篇文章主要介紹了使用 Docker 企業(yè)版搭建自己的私有注冊(cè)服務(wù)器的相關(guān)資料,需要的朋友可以參考下2018-11-11
Docker安裝MySQL集群全過(guò)程(主從復(fù)制)
本文介紹通過(guò)Docker實(shí)現(xiàn)數(shù)據(jù)庫(kù)主從集群部署,涵蓋網(wǎng)絡(luò)創(chuàng)建、my.cnf配置、復(fù)制設(shè)置及測(cè)試,解決防火墻等常見問(wèn)題,確保數(shù)據(jù)同步可靠2025-07-07
基于Docker搭建Graylog分布式日志采集系統(tǒng)的詳細(xì)過(guò)程
Graylog是一個(gè)開源的日志管理工具,支持日志收集、解析、存儲(chǔ)、搜索和可視化,它可以從各種數(shù)據(jù)源收集日志,并通過(guò)內(nèi)置的解析器將日志格式化,本文介紹基于Docker搭建Graylog分布式日志采集系統(tǒng),感興趣的朋友一起看看吧2025-02-02
k3s?通過(guò)docker部署?Kubernetes的方法步驟
本文主要介紹了k3s?通過(guò)docker部署?Kubernetes的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
Docker安裝Nginx問(wèn)題及錯(cuò)誤分析
這篇文章主要介紹了Docker安裝Nginx的問(wèn)題及錯(cuò)誤分析正確的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
Docker?鏡像導(dǎo)入導(dǎo)出過(guò)程介紹
這篇文章主要介紹了Docker?鏡像導(dǎo)入導(dǎo)出過(guò)程,文章圍繞主題展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
部署維護(hù)docker環(huán)境的詳細(xì)教程
這篇文章主要介紹了部署維護(hù)docker環(huán)境的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02

