将 docker ps 输出通过管道重定向到 less -S,避免折行:
$ docker ps -a | less -Sdocker logs 默认情况下不会观察日志,除非你使用 -f 参数:
$ docker logs <containerid> -fdocker inspect 默认输出大量的 JSON,可以通过 jq 提取需要的那些值:
# list IP addresses for all containers connected to 'bridge' network
docker network inspect bridge -f '{{json .Containers}}' | jq '.[] | {cont: .Name, ip: .IPv4Address}也可以像下面这样在 docker inspect 中使用内置的模板:
# is the last run container still running?
docker inspect --format '{{.State.Running}}' $(docker ps -lq)prune 是个非常有用的命令(可在 vaume 和 network 子命令中使用),但它从 Docker 1.13 开始才有。如果你使用旧的 Docker 版本,下面的命令可用于代替 prune 命令。
$ docker system prune悬空卷是不被任何容器使用的卷。若要移除它们,需要结合两个命令:首先列出悬空卷的 ID 然后移除它们。
docker volume rm $(docker volume ls -q -f "dangling=true")这个操作与上面的步骤相同。首先列出要删除(通过过滤)的容器(仅 ID)然后删除它们(参考 rm -f 强制删除)。
$ docker rm $(docker ps -q -f "status=exited")悬空映像是未标记的映像,它们是映像树的叶节点(不是中间层)。
docker rmi $(docker images -q -f "dangling=true")docker run 接收明确的端口映射参数,你也可以使用 -P 来自动映射所有端口。后者的优势在于可以防止冲突, 可以通过下面的命令查找已经分配的端口:
docker port <containerId> <portNumber>
# 或
docker inspect --format '{{.NetworkSettings.Ports}}' <containerId>每个容器在私有子网中都有自己的 IP (默认是 172.17.0.0/16)。重启可以改变 IP,如果你需要,可以查询:
docker inspect --format '{{.NetworkSettings.IPAddress}}' <containerId>配置重启策略为总是重启,这样一但容器退出,Docker 就会重启它
docker run --restart=always my_image配置重启策略为失败时重启,最大重启尝试次数为 10。
docker run --restart=on-failure:10 my_image