docker软件命令
查看docker版本:
docker version
docker -v
重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像相关
参考资源:https://www.runoob.com/docker/docker-image-usage.html">https://www.runoob.com/docker/docker-image-usage.html查看本地已经安装的Docker镜像:
docker images
or
docker image ls
搜索镜像:
docker search <image_name>
如:
docker search opencv
运行镜像:
docker run <image_name>
删除镜像:http://blog.51yip.com/cloud/1859.html">http://blog.51yip.com/cloud/1859.html
- 删除指定镜像:
docker rmi hello-world:latest
- 删除none镜像:
# 删除none镜像
# 可能需要先删除与该none镜像相关的运行的容器
docker rmi $(docker images | grep "none" | awk '{print $3}')
或者直接用命令直接删除该镜像相关的容器和镜像,最好先确认下确实用不上了该镜像再执行
docker rmi --force $(docker images | grep "none" | awk '{print $3}')
镜像的离线保存与加载:
- 保存镜像文件到tar格式的离线文件:
docker save -o <file_name>.tar <image_name>
or
docker save <image_name> -o <file_name>.tar
如
docker save -o py36_torch.tar python36/pytorch:lastest
- 加载离线镜像文件:
docker load < <file_name>.tar
如
docker load < py36_torch.tar
容器相关
运行容器:
docker会通过镜像名找到需要运行的容器,载入该容器,并运行在这个容器中的指定命令。
docker run <各种选项> <镜像名>
有关docker的运行命令选项众多,可以了解一些常用选项,满足日常需求即可:
1、基础版本
启动一个带有终端交互的容器
docker run -it <镜像名:Tag> bash
2、启动一个使用宿主机网络的容器
常在带有代理的环境下有用
https://www.debugself.com/2018/01/17/docker_network/">https://www.debugself.com/2018/01/17/docker_network
docker run --network=host -it <image_name>
显示正在运行的容器:
docker ps
or
docker container ls
显示所有运行容器(包括已经终止的,即运行过的容器):
docker ps -a
格式化显示运行的容器:
https://zju.date/docker-ps-format/">https://zju.date/docker-ps-format/
docker ps --format 'table {{.Names}}\t{{.Image}}'
终止容器运行:
docker stop <the-container-id>
清除容器:
docker rm <container-name or container-id> #删除容器
docker container prune # 删除所有已经终止的容器
终止并删除容器:
docker rm -f <the-container-id>
查看镜像或容器信息:
docker inspect <镜像名或容器ID>
从容器commit创建新的镜像:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
其中CONTAINER可以为当前运行容器的ID或名字,REPOSITORY即为创建的镜像名。
进入(关联)到已启动的容器:
会同步操作:
docker attach 44fc0f0582d9
Ctrl+C
或
异步操作:推荐
docker exec -it 775c7c9ee1e1 /bin/bash
容器退出后重新进入:
docker restart <container_name>
这样就会直接进入到容器退出前的状态,不用再次重新启动容器
空间占用分析:
具体操作请参考:Docker Tips: Clean Up Your Local Machine
查看空间占用情况:
docker system df
查看详细空间占用情况:
docker system df -v
代理设置
如果你使用docker的机器处在代理环境中,如果不配置代理的话在执行docker pull hello-world
可能会出现报错:
Get https://registry-1.docker.io/v2/: authenticationrequired
配置方法:
修改/etc/default/docker
文件,最后添加:
export http_proxy=http://username:password@proxy.xxx.com:port
export no_proxy="localhost,127.0.0.1,.xxx.com"
DOCKER_OPTS="--insecure-registry rnd-dockerhub.xxx.com"
然后重启docker服务:systemctl restart docker
此时直接docker pull hello-world能够成功。