Dokcer安装
Docker ,发现了新世界,一台电脑+docker >>> 无数台各种配置的电脑 >c<
快速搭建所需开发环境
Docker文档:https://docs.docker.com/,Docker安装指南: Install Docker Engine on Ubuntu
Dokcer安装
Uninstall old versions ~$ sudo apt-get remove docker docker-engine docker.io containerd runc Install using the repository Set up the repository ~$ sudo apt-get update ~$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common Add Docker’s official GPG key: ~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint. ~$ sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S] Use the following command to set up the stable repository. ~$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" Install Docker Engine ~$ sudo apt-get update ~$ sudo apt-get install docker-ce docker-ce-cli containerd.io Verify that Docker Engine is installed correctly by running the hello-world image. ~$ sudo docker run hello-world
Docker测试
# 启动docker服务 sudo service docker start # Docker: hello-world sudo docker run hello-world
其他Docker命令:
Usage: service docker {start|stop|restart|status} 查看镜像 sudo docker images 查看容器 sudo docker container ls -a
Tips:Docker中一般Crtl+C退出,传送门:停止、删除所有的 docker 容器和镜像。
Nvidia-docker安装
查看nvidia版本
$ nvidia-smi
Thu Nov 26 10:34:37 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 2060 Off | 00000000:01:00.0 On | N/A |
| 0% 37C P8 9W / 190W | 301MiB / 5931MiB | 2% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 942 G /usr/lib/xorg/Xorg 35MiB |
| 0 N/A N/A 2278 G /usr/lib/xorg/Xorg 96MiB |
| 0 N/A N/A 2404 G /usr/bin/gnome-shell 150MiB |
| 0 N/A N/A 4051 G /usr/lib/firefox/firefox 3MiB |
+-----------------------------------------------------------------------------+
参考链接:官网installation guide
Github:NVIDIA/nvidia-docker
# 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 # curl -s -L https://nvidia.github.io/nvidia-container-runtime/experimental/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker # 测试 sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi Unable to find image 'nvidia/cuda:11.0-base' locally 11.0-base: Pulling from nvidia/cuda 54ee1f796a1e: Pull complete f7bfea53ad12: Pull complete 46d371e02073: Pull complete b66c17bbf772: Pull complete 3642f1a6dfb3: Pull complete e5ce55b8b4b9: Pull complete 155bc0332b0a: Pull complete Digest: sha256:774ca3d612de15213102c2dbbba55df44dc5cf9870ca2be6c6e9c627fa63d67a Status: Downloaded newer image for nvidia/cuda:11.0-base Thu Nov 26 02:30:34 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce RTX 2060 Off | 00000000:01:00.0 On | N/A | | 0% 37C P8 10W / 190W | 307MiB / 5931MiB | 13% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| +-----------------------------------------------------------------------------+
测试
sudo docker run --runtime=nvidia --rm nvidia/cuda:11.0-base nvidia-smi
Docker 容器 GUI
sudo apt-get install x11-xserver-utils xhost+ docker run -e DISPLAY=$DISPLAY -e GDK_SCALE -e GDK_DPI_SCAL -v /tmp/.X11-unix:/tmp/.X11-unix --rm -it container-name-or-id
若遇到X Error时,添加参数:--ipc=host 或 --env="QT_X11_NO_MITSHM=1",参考链接:
Docker: gazebo: cannot connect to X server
若遇到 libGL error: No matching fbConfigs or visuals found libGL error... ,参考链接:
使用docker时出现libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver...
已成功测试上述链接中的 pull image 方式
使用nvidia-smi查看nvidia driver和cuda版本,根据 nvidia/cudagl ,选择合适的TAG
nvidia-smi sudo docker pull nvidia/cudagl:11.0-base # 测试 xhost+ sudo nvidia-docker run --rm -it -e DISPLAY=$DISPLAY -e GDK_SCALE -e GDK_DPI_SCAL -v /tmp/.X11-unix:/tmp/.X11-unix nvidia/cudagl:11.0-base # or sudo docker run --rm --runtime=nvidia -it -e DISPLAY=$DISPLAY -e GDK_SCALE -e GDK_DPI_SCAL -v /tmp/.X11-unix:/tmp/.X11-unix nvidia/cudagl:11.0-base apt-get update apt-get install mesa-utils glxgears
7 步精简 Docker 镜像(上)
7 步精简 Docker 镜像(下)
如何在docker和宿主机之间复制文件
end