Ubuntu docker安裝、驗證、卸載
卸載Docker CE
sudo apt-get purge docker-ce
主機上的圖像,容器,卷或自定義配置文件不會自動刪除。要刪除所有圖像,容器和卷:
sudo rm -rf /var/lib/docker
您必須手動刪除任何已編輯的配置文件。
一般我都會再執行以下,把依賴什么的也全都刪掉
sudo apt autoremove docker-ce
卸載列出所有docker安裝的組件
dpkg -l |grep docker

apt remove --purge dockker.io
所有的都需要卸載
腳本安裝docker(簡易方式,需網):
在Ubuntu系統中安裝較為簡單,官方提供了腳本供我們進行安裝。
sudo apt install curl
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
執行這個命令后,腳本就會自動的將一切準備工作做好,并且把Docker CE 的Edge版本安裝在系統中。
啟動Docker CE
sudo systemctl enable docker
sudo systemctl start docker
建立docker 用戶組
默認情況下,docker 命令會使用Unix socket 與Docker 引擎通訊。而只有root 用戶和docker 組的用戶才可以訪問Docker 引擎的Unix socket。出于安全考慮,一般Ubuntu系統上不會直接使用root 用戶。因此,更好地做法是將需要使用docker 的用戶加入docker用戶組。
# 建立docker組
sudo groupadd docker
# 將當前用戶加入docker組
sudo usermod -aG docker $USER
注銷當前用戶,重新登錄Ubuntu,輸入docker info,此時可以直接出現信息。
配置國內鏡像加速
在/etc/docker/daemon.json 中寫入如下內容(如果文件不存在直接新建該文件)
sudo vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
重新啟動服務
sudo systemctl daemon-reload
sudo systemctl restart docker
驗證
啟動一次操作容器:docker run IMAGE_NAME [COMMAND] [ARG…]
例如,啟動一個容器輸出hello world。由于剛裝上Docker,沒有任何鏡像,所以會先下載一個最新的ubuntu18.04的docker鏡像。一次操作容器在處理完操作后會立即關閉容器。
docker run ubuntu echo 'hello world'
啟動交互式容器:docker run -t -i –name=自定義名稱 IMAGE_NAME /bin/bash
-i –interactive=true | false,默認是false
-t –tty=true | false,默認是false
–name 給啟動的容器自定義名稱,方便后續的容器選擇操作
啟動交互式的容器,就是類似虛擬機、云主機的操作方式,操作完一個命令后仍然可以繼續:
docker run -i -t ubuntu /bin/bash
拉GPUTensorFlow:
docker tensorflow的鏡像官網為https://hub.docker.com/r/tensorflow/tensorflow/,首先按照官方教程安裝nvidia-docker2,之后的tensorflow-gpu鏡像都需要nvidia-docker來啟動,或者docker run --runtime=nvidia,當然這樣就足夠用了,如果你想用docker取代nvidia-docker可以修改/etc/docker/daemon.json為如下所示,即在第一行加入"default-runtime": "nvidia",這樣就可以直接用docker取代nvidia-docker了。
{ "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "/usr/bin/nvidia-container-runtime", "runtimeArgs": [] } }}下載成功后執行:
docker images
步驟:
1.安裝cuda
2.安裝 nvidia-docker2
2.1安裝nvcc
sudo apt install nvidia-cuda-toolkit
驗證nvcc --version
2.2設置stable存儲庫和密鑰
sudo apt-get install -y nvidia-docker2用到了。。。distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
nvidia-docker2安裝包sudo apt-get updatesudo apt-get install -y nvidia-docker2重啟docker
sudo systemctl restart docker
用官方container測試是否安裝成功
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
拉TensorFlow的鏡像
docker pull tensorflow/tensorflow:2.7.1-gpu
docker pull tensorflow/tensorflow:2.5.1-gpu
docker pull tensorflow/tensorflow:2.6.0rc0
啟動容器
如果在前面配置了"default-runtime": "nvidia",那么執行:
|
1
|
docker run --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3 |
沒有配置則可以執行:
|
1
|
nvidia-docker run --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3 |
或者執行:
|
1
|
docker run --runtime=nvidia --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3 |
其中docker run的參數含義如下:
(1)--rm 退出容器清除數據
(2)-it 啟動交互式終端
(3)-v 掛在目錄
(4)--name 容器名稱
具體細節參考官方文檔:https://docs.docker.com/engine/reference/run/
4.其他docker常用命令
(1)通過[docker commit CONTAINER_ID newImageName]保存對鏡像的修改,CONTAINER_ID可以通過docker ps查看
(2)通過[docker save -o 文件名 鏡像名] 將鏡像存儲至磁盤,例如docker save -o tensorflow.tar tensorflow/tensorflow:1.8.0-devel-gpu-py3
(3)通過[docker load --input 文件名] 從磁盤導入鏡像,例如docker load --input tensorflow.tar
(4)容器一旦退出里面的信息就都會被清除,若不想保存修改又不想丟失信息,那么可以CTRL+P+Q讓容器在后臺運行,然后通過docker attach CONTAINER_ID重新連接進容器

浙公網安備 33010602011771號