这篇文章记录一些常用的docker命令,有些是docker swarm专用命令,主要是为了,方便记录一下,以防忘记和方便查找。

  1. docker images -f dangling=true 查询显示虚悬镜像 。参考:https://www.jianshu.com/p/3ccc32c7c584
  2. docker rmi $(docker images -q -f dangling=true) 删除虚悬镜像(有些时候可能需要 root 账号才能执行该操作,需要先切换至 root 账号)
  3. docker stack ls 查看部署的堆栈
  4. docker stack rm {stack-name} 删除部署的堆栈,如果要删除旧的发布版本使用这个
  5. docker service ls 查看部署的服务,这个可以看到对应的端口
  6. docker service rm {service-name} 删除部署的服务,这个暂时没有用
  7. docker service logs -f --tail 10 {service-name} 查看部署的service的后10行的日志,并在控制台监控日志,如果部署不成功,一般使用该命令来看日志。
  8. docker service ps {service-name} 查看服务的部署状态,有时候服务部署不成功,查看部署不成功的原因,或者想看该服务的容器部署到那个主机上都可以使用该命令
  9. docker exec -it container_name (或者 container_id) /bin/bash 登录守护式容器,进入某个docker容器中,由于我们的是docker集群,要先用docker service ps {service-name}查看服务部署到那个主机上,退出使用exit
  10. docker login -u username -p password 私有仓库地址或中央仓库 登录中央仓库或私有仓库
  11. sudo docker stack deploy -c docker-compose.yml --with-registry-auth 服务名 依据docker-compose.yml文件,部署docker swarm 服务,其中镜像是在自己的docker私服中。
  12. docker run -d container_name (或者 container_id) /bin/bash 后台运行某个容器
  13. docker start $CONTAINER_NAME/ID 启动已运行过的容器
  14. docker node update --availability drain worker1 把worker1节点的服务赶到其它机器, 本节点设置为 drain ,这个命令主要是用来迁移机器的时候用。参考:https://docs.docker.com/engine/reference/commandline/node_update/
  15. docker exec -it registry /bin/registry garbage-collect /etc/docker/registry/config.yml 进行docker的垃圾回收,删除镜像并不会实际删除数据,还需要进行垃圾回收才能删除数据。参考:https://blog.51cto.com/huanghai/2451898 , https://www.jb51.net/article/111837.htm
  16. 删除私有镜像仓库中的无用的镜像
    先删除,后垃圾回收实际删除
docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>

垃圾收集删除

$ docker exec <私有仓库镜像容器名> bin/registry garbage-collect /etc/docker/registry/config.yml

n参考:

  1. 根据docker镜像,生成dockerfile,其中 redash/redash:8.0.2.b37747 是redash 的docker镜像之一,将要生成docker镜像替换掉这里的位置即可。
    sudo docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage -sV=1.36 redash/redash:8.0.2.b37747参考:https://hub.docker.com/r/alpine/dfimage
  2. docker logs -f --tail 100 容器id 查看docker 运行日志,该命令会从容器启动开始持续打印,指定只打印最后100条

参考:1. Docker查看容器运行日志命令(含tomcat运行日志)