Docker常用操作
一、镜像操作
1)构建镜像
docker build -t REPOSITORY:TAG . 注意最后一个点[.]不能缺少,生成完:runoob/centos为REPOSITORY,6.7为TAG
2)获取镜像
sudo docker pull REPOSITORY[:TAG]
3)为镜像打个标签
docker tag IMAGE ID labelname IMAGE ID:860c279d2fec
4)删除镜像
首先删除容器,再删除镜像
docker ps -a
docker rm id
删除镜像
docker ps -a
docker images
docker rmi id
注:删除前需保证容器是停止的
5)保存镜像为*.tar
5.1 save
docker save -o pytorch_latest.tar pytorch/pytorch:latest #导出将需要花费一点时间,导出成功后将.tar拷到离线主机导入即可
5.2 export
docker export 1e560fca3906 > ubuntu.tar #将容器1e560fca3906导出到文件
6)加载镜像*.tar
6.1 load
docker load -i pytorch_latest.tar:镜像导出和导入需要使用相匹配的命令,如save对应load
6.2 import
docker import - test/ubuntu:v1
注:5和6需对应使用,save与load相对应,export和import相对应。
二、容器操作
1)启动docker容器
sudo docker run -it REPOSITORY:TAG
sudo docker run -t -i REPOSITORY:TAG /bin/bash
sudo docker run -t -i -v /local_ws:/docker_ws REPOSITORY:TAG /bin/bash #Docker容器启动的时候,可以用-v参数指定挂载宿主机的一个目录,docker_ws为docker中目录(容器目录不可以为相对路径),local_ws为本地目录
sudo docker run --gpus all --shm-size="8g" -it --rm --entrypoint="/bin/bash" docker_name:v0.1 (镜像) #--rm 当容器退出时能够自动清理容器内部的文件系统
sudo docker run --gpus all --shm-size="16g" -it -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --rm --entrypoint="/bin/bash" dockername:dockertag
#-e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all 用于支持docker中cuda版torch
2)进入docker容器
2.1 exec
sudo docker exec -it 126 /bin/bash 注:126为容器CONTAINER ID前3位,使用该命令前,当前容器需是启动状态。如果当前容器处于当运行状态,可使用sudo docker start container_id
2.2 attach
sudo docker attach 126 #不建议使用,当退出该容器时,文件系统也随之消失;
3)停止一个运行的容器
sudo docker stop -t=5s 126 延时关闭5s
4)直接关闭运行的容器
sudo docker kill
5)重启一个容器
sudo docker restart 126
6)查看当前运行中的容器
sudo docker ps [-a] 带a为所有生成过的容器
7)删除容器
docker ps -a
docker rm id
12)将当前容器保存为一个镜像:
docker commit -a “labelname” CONTAINER_ID imagename 安装完软件后可以采用该方法保存已安装的配置,生成新的镜像;
14)容器与本地间拷贝数据
docker cp orig_dir desc_dir orig_dir:容器中路径 desc_dir:本地路径
14.1 本地目录拷贝至容器
docker cp /igs/soft 96f7f14e99ab:/workspace/ 将本地目录/igs/soft拷贝到容器目录workspace下 96f7f14e99ab为容器ID
docker cp /igs/soft 96f7f14e99ab:/workspace 将本地目录/igs/soft拷贝到容器目录,并重命名为workspace
14.2 容器目录拷贝至本地
docker cp 96f7f14e99ab:/workspace /igs/soft/ 将容器目录workspace拷贝到本地目录/igs/soft下
15)
通过docker inspect命令查看docker目录挂载到宿主机的位置
三、其它操作
docker环境内无法使用sudo: apt-get -y install sudo
安装vim: sudo apt-get install vim,gedit