docker 容器可以理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全的停止。

基础命令

  • 查看docker版本
docker version
  • 显示docker系统的信息
docker info
  • 日志信息
docker logs
  • 故障检查
service docker status
  • 启动关闭docker
sudo service docker start|stop

容器信息

  • 查看当前运行的容器
docker ps
  • 查看全部容器
docker ps -a
  • 查看全部容器的id和信息
docker ps -a -q
  • 查看全部容器占用的空间
docker ps -as
  • 查看一个正在运行容器进程,支持 ps 命令参数
docker top
  • 查看容器的示例id
sudo docker inspect -f  '{{.Id}}' [id]
  • 检查镜像或者容器的参数,默认返回 JSON 格式
docker inspect
  • 返回 ubuntu:14.04 镜像的 docker 版本
docker inspect --format '{{.DockerVersion}}' ubuntu:14.04
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ubuntu:14.04

容器清理

  • Docker 占用的磁盘空间查看:
docker system df

返回的结果如下:

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          33        8         16.8GB    16.39GB (97%)
Containers      9         1         37.43kB   36.44kB (97%)
Local Volumes   7         2         0B        0B
Build Cache     507       0         21.19GB   21.19GB

注意:Reclaimable 就是可以恢复的大小,它是通过从总图像大小中减去活动图像的大小来计算的。

接下来就可以使用以下方法来清理:

  1. 清理停止的容器:使用 docker rm 命令清理停止的容器,命令格式为:docker rm <container_id>
  2. 清理未使用的镜像:使用 docker image prune 命令清理未使用的镜像,命令格式为:docker image prune
  3. 清理无用的数据卷:使用 docker volume prune 命令清理无用的数据卷,命令格式为:docker volume prune
  4. 清理未使用的网络:使用 docker network prune 命令清理未使用的网络,命令格式为:docker network prune
  5. 清理 Docker 缓存:使用 docker builder prune 命令清理Docker缓存,命令格式为:docker builder prune
  6. 清理 Docker 日志:使用 docker logs 命令查看容器日志,确认无用日志后,使用 truncate 命令清空日志文件,命令格式为:truncate -s 0 <logfile>
  • 清理无用镜像:
docker image prune -a
  • 清理无标签的镜像:
docker rmi $(docker images -f "dangling=true" -q)
  • 清理缓存文件:
docker system prune --all --force --volumes
文章目录