这篇文章记录一些常用的docker命令,有些是docker swarm专用命令,主要是为了,方便记录一下,以防忘记和方便查找。
docker images -f dangling=true
查询显示虚悬镜像 。参考:https://www.jianshu.com/p/3ccc32c7c584docker rmi $(docker images -q -f dangling=true)
删除虚悬镜像(有些时候可能需要 root 账号才能执行该操作,需要先切换至 root 账号)docker stack ls
查看部署的堆栈docker stack rm {stack-name}
删除部署的堆栈,如果要删除旧的发布版本使用这个docker service ls
查看部署的服务,这个可以看到对应的端口docker service rm {service-name}
删除部署的服务,这个暂时没有用docker service logs -f --tail 10 {service-name}
查看部署的service的后10行的日志,并在控制台监控日志,如果部署不成功,一般使用该命令来看日志。docker service ps {service-name}
查看服务的部署状态,有时候服务部署不成功,查看部署不成功的原因,或者想看该服务的容器部署到那个主机上都可以使用该命令docker exec -it container_name (或者 container_id) /bin/bash
登录守护式容器,进入某个docker容器中,由于我们的是docker集群,要先用docker service ps {service-name}
查看服务部署到那个主机上,退出使用exit
docker login -u username -p password 私有仓库地址或中央仓库
登录中央仓库或私有仓库sudo docker stack deploy -c docker-compose.yml --with-registry-auth 服务名
依据docker-compose.yml
文件,部署docker swarm
服务,其中镜像是在自己的docker私服中。docker run -d container_name (或者 container_id) /bin/bash
后台运行某个容器docker start $CONTAINER_NAME/ID
启动已运行过的容器docker node update --availability drain worker1
把worker1节点的服务赶到其它机器, 本节点设置为drain
,这个命令主要是用来迁移机器的时候用。参考:https://docs.docker.com/engine/reference/commandline/node_update/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- 删除私有镜像仓库中的无用的镜像
先删除,后垃圾回收实际删除
docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>
垃圾收集删除
$ docker exec <私有仓库镜像容器名> bin/registry garbage-collect /etc/docker/registry/config.yml
n参考:
- 根据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 docker logs -f --tail 100 容器id
查看docker 运行日志,该命令会从容器启动开始持续打印,指定只打印最后100条
参考:1. Docker查看容器运行日志命令(含tomcat运行日志)