目录
- 1.安装 ubuntu1804 安装nvidia-docker
- 2. docker搜索镜像仓库
- 3.docker 常用命令
- 4. docker pull #从仓库拉镜像 搜索这个网站https://registry.hub.docker.com/
- 5.创建容器
- 6.创建容器并进入正在运行的容器
- 7.容器未打开,进入前需要打开容器
- 8. ssh可直接连接docker内部-在创建容器时进行过端口映射
- 9.镜像包装、保存和加载
- 10. 保存容器,其他机器导入容器
- 11 后台操作和刷新程序查看日志
1.安装 ubuntu1804 安装nvidia-docker
1.1 sudo apt update 1.2 # 启用HTTPS sudo apt install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common 1.3 # 添加GPG key $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 1.4 # 添加稳定版源 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" 1.5 # 更新源 $ sudo apt update # 安装Docker CE $ sudo apt install -y docker-ce
配置nvidia-docker
# 添加源 $ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list # 更新源 $ sudo apt update
安装nvidia-docker2
# 安装nvidia-docker2 $ sudo apt install -y nvidia-docker2 # 重启Docker daemon $ sudo pkill -SIGHUP dockerd
可访问普通用户
$ sudo groupadd docker $ sudo usermod -aG docker $USER
以上还是需要的sudo,再试试以下2: ``` 1. 加入当前用户docker组
$ sudo usermod -a -G docker $USER
2. 修改/var/run/docker.sock的权限
$ sudo chmod 777 /var/run/docker.sock ```
2. docker搜索镜像仓库
Docker Hub
3.docker 常用命令
docker images #查看本地镜像 docker inspect 容器名称 ##查看容器的详细信息 docker ps #查看正在运行的容器 docker ps -a #查看所有容器(包括未运行容器) docker stop 容器名称 #停止正在运行的容器 docke rm 容器名称 #删除容器 docker info #查看容器信息 docker cp somefile container_name:/root/path #把宿主机somefile将文件复制到容器中
4. docker pull #从仓库拉镜像 搜索这个网站https://registry.hub.docker.com/
docker pull dzw001/cuda11.1-cudnn8-python3.6-pytorch1.8.1-ubuntu18.04 docker images ##你可以看到刚下载的镜像
5.创建容器
#3090 nvidia-docker run -it --name my_docker0 -v /data/:/home --shm-size 16g -p 10029:22 --privileged dzw001/cuda11.1-cudnn8-python3.6-pytorch1.8.1-ubuntu18.04 bash nvidia-docker run -it --name my_docker1 -v /data/yhl/docker_file/20220429:/home --shm-size 16g -p 10009:22 --privileged images1 bash ## nvidia-docker run -it --name my_docker2 -v /data/yhl/docker_dir/20220422:/home -v /data/project:/home/file --shm-size 16g -p 10009:22 --privileged images2 bash
6.创建容器并进入正在运行的容器
docker exec -it my_docker0 bash
7.容器没有打开,需要先打开容器再进入
docker container start yhl docker exec -it yhl bash /etc/init.d/ssh restart
8. ssh可直接连接docker内部-在创建容器时进行过端口映射
ssh root@192.168.114.21 -p 10003 passwd 123456
9.镜像包装、保存和加载
##打包镜像 ---》本地docker images可见,本地可用,但是本地找不到文件 需要save才能保存本地 docker commit container_name image_release:tag ##将镜像保存到本地 docker save -o 文件名 镜像名 docker save -o nginx.tar nginx:latest ## docker load(加载) docker load -i 文件名 docker load -i mydocker.tar docker images 你可以检查它是否成功。
## 保存容器,其他机器导入容器 new 2022年7月13日16:03:13更新 ``` docker ps -a ##这里可以看到需要保存的容器名称,比如容器名是contain_name1 docker commit contain_name1 my_images:v1 # 这里contain_name需要保存容器的名称,这里my_images:v1是现在刚取的需要保存成的镜像的名字加上tag v1 docker images 这个时候可以看到我们刚才commit的镜像名字my_images docker save -o xxx.tar my_images:v1 ##xxx.tar压缩包的名称需要打包保存, my_images:v11需要打包镜像名称 #完成后,将在当前目录中生成xxx.tar,将包发送到其他机器。 docker load -i xxx.tar #在其他机器上面load这个tar包 docker images ##你可以检查它是否成功。 ```
10. 保存容器,其他机器导入容器 --》尝试其他机器nvidia-smi无效了
## 保存容器和其他机器导入该容器
```
docker ps #查看运行中的容器
docker export 84b952b312df > new-contain.tar #84b952b312df是容器号,这句话完成后会在当前目录生成new-contain
docker import cuda11.3-python3.8-pytorch1.11-goe-quantification cuda11.3-python3.8-pytorch1.11-quantification:v1 #把压缩包拷贝到其他电脑,并导入当前电脑的docker,注意这里v1需要加上
docker images #查看镜像显示成功导入
#用该镜像创建容器 注意这里:v1需要加上
nvidia-docker run -it --name my——containquantification -v /data:/home --shm-size 16g -p 10089:22 --privileged cuda11.3-python3.8-pytorch1.11-quantification:v1 bash #用该镜像创建容器
```
## 11 程序后台运行与刷新查看日志
nohup python3 main.py & #后台运行
tail -f nohup.out #查看日志 不断刷新查看