• 按照 CPU 使用率列出容器
docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDs}}" | (read -r; printf "%s\n" "$REPLY"; sort -k3 -hr)
  • 停止除 dockge 之外的所有容器
docker ps -q | grep -v $(docker ps -qf "name=dockge") | xargs docker stop
  • 查看使用的全部端口
netstat -lnptu | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq
  • 暂时不让 docker compose 里面的某一个服务(容器)启动
profiles:
  - donotstart
  • docker 干预 iptables 导致异常,暴露端口的问题

安装 docker 后, 务必编辑 /etc/docker/daemon.json (没有就新建), 设置 ip 为 127.0.0.1,防止 docker 自己修改了 iptable 导致 ufw 失效。修改完毕后执行 systemctl daemon-reload && systemctl restart docker 重启 docker 服务。

参考

# 开启了 IPv6 支持, 配置了 DNS。国外服务器自行替换为 1.1.1.1, 8.8.8.8
{
    "dns":[
        "119.29.29.29",
        "223.5.5.5"
    ],
    "ipv6":true,
    "fixed-cidr-v6":"fd00:db8:1::/64",
    "experimental":true,
    "ip6tables":true,
    "ip":"127.0.0.1"
}

注意:不能修改 /lib/systemd/system/docker.service 加上 --iptables=false, 否则 docker 无法启动。修改 /etc/docker/daemon.json 加上 { "iptables" : false } 本质一样。