Docker常用命令

147 阅读2分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情

查看所有镜像

docker images

查看所有运行中的容器

docker ps

查看所有容器

docker ps -a
    

删除镜像

docker rmi [IMAGE ID]
    

删除容器

docker rm [CONTAINTER ID]

启动所有容器

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

停止所有容器

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

重启所有容器

docker restart $(docker ps -a | awk '{ print $1}' | tail -n +2)

删除所有容器

docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

删除所有镜像

docker rmi $(docker images | awk '{print $3}' |tail -n +2)

更新镜像自启动参数

docker container update --restart=always 容器名字    

更新所有镜像自启动参数

docker container update --restart=always $(docker ps -a | awk '{ print $1}' | tail -n +2)    

批量删除Tag为的无用镜像

Linux

docker images|grep none|awk '{print $3}'|xargs docker rmi

Windows版(用PowerShell执行)

docker rmi -f  $(docker images --filter “dangling=true” -q --no-trunc)
        

Docker日志

基本语法

docker logs [OPTIONS] [CONTAINER ID]
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

查看指定时间后的日志,只显示最后100行

docker logs -f -t --since="2020-02-12" --tail=100 [CONTAINER_ID]
    

查看最近30分钟的日志

docker logs --since 30m [CONTAINER_ID] 
    

查看某时间段日志

docker logs -t --since="2020-02-14 14:00:00" --until "2020-02-14 15:59:59" [CONTAINER_ID]     
    

Docker镜像的导出/导入

导出docker镜像

docker save <repository>:<tag> -o <repository>.tar
            

导入镜像

Windows

docker load [IMAGE ID]  <  c:\repository.tar 

Linux

docker load -i /home/repository.tar
        
        

使用远程镜像仓库

登录远程仓库(需要先修改本地daemon.json文件授权信任,不然提示权限不足)

docker login [镜像仓库Ip]

将本地镜像重新打远程仓库的标签Tag

标签打到本地

docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

docker image tag SOURCE_IMAGE[:TAG] [镜像仓库Ip]/TARGET_IMAGE[:TAG]
        

推送镜像到远程仓库

docker push [镜像仓库Ip]/SOURCE_IMAGE[:TAG]
    

拉取远程仓库镜像

docker pull [镜像仓库Ip]/SOURCE_IMAGE[:TAG]

查看Docker磁盘信息

docker system df

查看Docker目录占用空间大小

du -hs /home/allspark/docker/lib/docker

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

docker system prune docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker 镜像。