1. 查看 docker 版本
sudo docker version
2. 查看本地庫中的鏡像
sudo docker images
3. 查看 正在運行的 容器
sudo docker ps -a
4. 導入 鏡像的 tar 文件 到本地庫
sudo docker load -i 14.14.14.100_5000_pytorch_pytorch_1.1.0-cuda10-py36.tar
5. 再次查看庫中鏡像和運行的容器,發現庫中已有鏡像
6. 為庫中鏡像改名
docker tag {imageID} {repository}:{tag}
庫中鏡像:
鏡像改名:
改名后,相同 ID 的鏡像會有兩個, 這時不能 用鏡像ID 來刪除鏡像,因為這時該鏡像有兩個引用(有了兩個名)。為防止一個鏡像多個名,我們可以設置相同的名但是不同的tag標簽, 也或者直接刪掉多余的命名和標簽,如下:
7. 根據庫中的鏡像運行容器:
sudo docker run -it 14.14.14.100:5000/pytorch/pytorch:1.1.0-cuda10-py36 /bin/bash
其中,
14.14.14.100:5000/pytorch/pytorch:1.1.0-cuda10-py36 為 容器名+容器tag
參數 -t 讓Docker分配一個偽終端並綁定在容器的標准輸入上,-i 讓容器的標准輸入保持打開。
使用docker run命令來啟動容器,docker在后台運行的標准操作包括
1.檢查本地是否存在指定的鏡像,不存在則從公有倉庫下載
2.使用鏡像創建並啟動容器
3.分配一個文件系統,並在只讀的鏡像層外面掛載一層可讀可寫層
4.從宿主主機配置的網橋接口中橋接一個虛擬接口道容器中去
5.從地址池分配一個ip地址給容器
6.執行用戶指定的應用程序
7.執行完畢之后容器被終止
說明來自: https://www.cnblogs.com/linjiqin/p/8608975.html
8. 在運行的容器中安裝軟件后, 將該容器保存為新的鏡像
查看需要保存為鏡像的容器信息
根據容器ID 來保存容器為鏡像。
具體命令:
docker commit 2ec7cf215b52 new_pytorch:v1
2ec7cf215b52 為容器的ID
new_pytorch 為保存成鏡像的名
v1 為保存成鏡像的標簽
9. 把庫中的鏡像保存到硬盤
查看庫中的鏡像
docker images
報庫中的鏡像導出到硬盤上:
docker save -o /tmp/new_pytoch:v1.tar new_pytorch:v1
成功導出:
-----------------------------------------------------------------
附注(常用命令):
連接到某個正在運行的容器
docker attach $CONTAINER_ID
啟動某個已經停掉的容器 ( start 命令只能啟動一個已經停掉的容器 )
docker start $CONTAINER_ID
啟動某個容器 ( restart 命令可以重啟正在運行的容器,也可以啟動已經停掉的容器 )
docker restart $CONTAINER_ID
*** 不論是 start命令還是restart 命令 啟動的容器如果有交互終端則只能通過 docker attach $CONTAINER_ID 進入 。
刪除docker中的鏡像
docker rmi 鏡像id
刪除docker中的容器
docker rm 容器id
查看當前正在運行的容器
docker ps
查看所有容器:(包括 正在運行的, 也包括退出的容器)
docker ps -a
注意, 在刪除某個鏡像之前要保證沒有使用該鏡像的容器(包括正在運行的容器,也包括退出的容器)。
因此,我們需要先刪除使用該鏡像的已退出的容器, 而對於正在運行的容器我們需要先停掉該容器,再刪除容器。當沒有使用該鏡像的容器存在的情況下,我們才能刪除該鏡像。
對於多鏡像 ID 相同的情況下,我們需要使用 鏡像名+鏡像標簽(tag) 來刪除鏡像。
參考資料:
https://blog.csdn.net/qq_26709459/article/details/80785761
https://www.cnblogs.com/linjiqin/p/8608975.html
https://blog.csdn.net/x8h8kenan/article/details/80229279