簡介:
- docker可以將需要的環境及應用打包成一個文件;
- 通過這個文件可以創建一個虛擬容器,可以實現程序在指定的環境中執行的目的.
- 同時docker可以方便的實現容器的複製,修改,移植.有效的解決了環境配置問題.
1.docker的下載及安裝:
https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
sudo dpkg -i docker-ce_18.06.3_ce_3-0_ubuntu_amd64.deb
2.安裝nvidia-docker和nvidia-docker-plugin:
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
3.驗證安裝是否成功:
nvidia-docker run --rm nvidia/cuda:9.0-devel nvidia-smi
4.load鏡像:
方式一. 加載本地鏡像.tar文件: docker load -i path/name.tar
方式二. 查詢dockerHub中的指定鏡像及pull到本地:
docker search 鏡像名 //如cuda10
docker pull NAME //NAME爲搜索列表中的NAME
5.鏡像列表查看:
docker images
6.創建容器:
docker run REPOSITORY:TAG
7.查看容器列表:
docker ps -a
8.啓動容器:
簡易啓動方式:
nvidia-docker run --rm -it IMAGE
正規啓動方式:
nvidia-docker run --rm -p 8000:3000 -it --ipc=host -v path1:path2 IMAGE /bin/bash
命令 | 解釋 |
---|---|
–rm | 表示在容器終止運行後自動刪除容器文件 |
-p | 表示容器的3000端口映射到本機的8000端口 |
-it | 表示以交互模式運行容器,併爲容器分配一個僞輸入終端 |
–ipc=host | 表示允許共享內存,並允許容器使用host的網絡堆棧信息 |
-v | 表示需要映射主機目錄到容器中 |
path1:path2 | 表示主機目錄:容器目錄 |
IMAGE | 表示容器列表中的IMAGE |
Done!
docker卸載:
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo rm -rf /var/lib/docker
sudo apt-get autoremove docker
常用的命令:
命令 | 操作 |
---|---|
鏡像列表查看 | docker images |
刪除鏡像 | docker rmi IMAGE ID |
容器列表查看 | docker ps -a |
刪除容器 | docker rm -f CONTAINER ID |
搜索鏡像 | docker search 鏡像 //也可以從官網搜索:https://hub.docker.com/ |
dockerHub鏡像庫中拉取鏡像 | docker pull 鏡像 |
拷貝本地文件到容器中去 | docker cp 本地目錄 CONTAINER ID:容器目錄 |
在基礎容器中做完修改後保存鏡像的命令 | docker commit -m “說明” -a “作者” CONTAINER ID 鏡像名字:標籤 //自己指定(鏡像名字:標籤)[[REPOSITORY]:[TAG]]只能用小寫字母 |
鏡像保存 | docker save -o path/name.tar IMAGE //容器列表中的IMAGE |
鏡像加載 | docker load -i path/name.tar |
常見的bug
bug1: docker: Error response from daemon: create nvidia_driver_390.67: VolumeDriver.Create: internal error, check logs for details.See ‘docker run --help’.
解決: nvidia-docker volume create nvidia_driver_390.46
bug2: nvidia-docker | 2019/08/13 17:36:49 Error: Could not load UVM kernel module. Is nvidia-modprobe installed?
解決: sudo apt-get install nvidia-modprobe