Docker实践
类别: Docker 实践 标签: Docker GPU none xargs awk inspect目录
安装与卸载
安装
- 快速安装
curl -fsSL https://get.docker.com | sh -
- Install Docker Engine
卸载
- apt
apt-get remove --auto-remove docker
- yum
yum remove docker docker-common docker-selinux docker-engine
指定显卡(NVIDIA_VISIBLE_DEVICES)
#指定单张GPU卡
docker run --runtime=nvidia -d -e NVIDIA_VISIBLE_DEVICES=0 gouchicao/yolov5:train
#指定多张GPU卡,多个逗号隔开。
docker run --runtime=nvidia -d -e NVIDIA_VISIBLE_DEVICES=0,1 gouchicao/yolov5:train
#NVIDIA_VISIBLE_DEVICES默认值是all
docker run --runtime=nvidia -d gouchicao/yolov5:train
重启策略
方法
- 启动容器时通过参数指定
#如果容器停止总是重新启动。如果手动停止,则仅在Docker守护程序重启或手动重启容器本身时才重启。 docker run -d --restart=always --name pypiserver -p 8080:8080 \ -v /data/pypi-packages/:/data/packages
- 容器启动后,通过命令来更新。
docker run -d --name pypiserver -p 8080:8080 \ -v /data/pypi-packages/:/data/packages docker update --restart=always pypiserver
验证
#重启Docker Daemon
systemctl restart docker
#查看运行的服务是否存在
docker ps | grep pypiserver
镜像
删除 TAG 为 none 的所有镜像
docker rmi --force $(docker images -q --filter "dangling=true")
重新构建镜像(不使用缓存)
docker build --no-cache -t name:tag .
存储镜像到文件
docker save -o name.tar name:tag
从文件加载镜像
docker load -i name.tar
容器
退出容器后自动删除
docker run --rm busybox:latest
删除状态为 Exited 的容器
docker rm -f $(docker ps -qa --filter status=exited)
删除状态为 Created 的容器
docker ps -qa --filter status=created | xargs docker rm
通过匹配有规则的名称删除容器
docker rm -f $(docker ps -a | grep face-service- | awk '{print $1}')
查看元数据
查看命令和参数
docker inspect jrottenberg/ffmpeg:4.3-alpine --format=""
[ffmpeg][--help]
FAQ
- docker: Error response from daemon: endpoint with name tuguan-database-pc already exists in network bridge.
#查看 docker network inspect bridge | grep tuguan-database-pc #断开连接 docker network disconnect --force bridge tuguan-database-pc