目录
1,加载镜像
查看所有镜像:
docker images
使用该指令加载docker镜像:
docker load -i images_name.tar
加载完镜像后,查看最新加载的容器,记住第一列的容器名称用于后续的启动:
docker images | head -n 5
2,启动容器
使用下面的指令启动docker镜像生成容器环境:
#!/bin/bash
mkdir /home/hualu_cup/$1 # 第一个参数传入创建文件夹的名称
nvidia-docker run \
--name $1 \
-h $1 \
--privileged=true \ # container内的root拥有真正的root权限
-d \
-it \
-p 30000:22 \
-p 30001:8888 \
-v /etc/localtime:/etc/localtime\ # 同步时间
-v /home/hualu_cup/$1:/notebooks \ # 挂载目录
--restart='always'\ # docker重启时,容器也能自动启动
$2 # 第二个参数传入镜像名称:版本号
产生有效的容器:
sudo nvidia-docker run -itd --shm-size 10G --gpus all --name tensorrtzw -it -p 10890:22
tensorrt72_opencv45_zw:latest /bin/bash
查看port_number端口是否被占用:
netstat -tunlp | grep port_number
-v 是挂载目录,前面的是服务器上的目录,冒号后面的是容器中的目录:
-v 服务器目录: 容器目录
可以使用-v,将服务器上的时间目录和容器中的目录同步是为了同步容器中的时间:
/etc/localtime
查看已经运行的容器,使用head查看最新运行的容器:
docker ps -a | head -n 5
3,进入和退出容器
在第二步运行容器后会出现容器id,进入相应id号的容器的命令行:
docker exec -it container_id bash
退出该容器(但容器还在运行):
exit
4,停止容器
停止容器id对应的容器,容器id是很长的字符串,输入前结果字符串即可:
docker stop container_id
5,保存容器
提交对应的容器为镜像:
docker commit contain_id image_name:version
将镜像导出为压缩包:
docker save -o test.tar image_name:version
将镜像压缩:
docker save image_name:version | gzip > image_package.tar.gz
本篇参考👇