简介:
- 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 |
/bin/bash | 容器的默认启动命令 |
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 inspect IMAGE ID |
镜像保存 | docker save -o path/name.tar IMAGE //容器列表中的IMAGE |
镜像加载 | docker load -i path/name.tar |
启动已存在的容器 | docker attach CONTAINER ID |
常见的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
bug3😗: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: dial unix /var/run/docker.sock: connect: permission denied
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新docker用户组