docker服务启动过程分析

How  docker.service start? just by ref

我们先了解docker的各个核心组件的介绍

runc:runc实现了容器的底层功能,例如创建、运行等。runc通过调用内核接口为容器创建和管理cgroup、namespace等Linux内核功能,来实现容器的核心特性。runc是一个可以直接运行的二进制程序,对外提供的接口就是程序运行时提供的子命令和命令参数。runc内通过调用内置的libcontainer库功能来操作cgroup、namespace等内核特性。

dockerd:dockerd是运行于服务器上的后台守护进程(daemon),负责实现容器镜像的拉取和管理以及容器创建、运行等各类操作。dockerd向外提供RESTful API,其他程序(例如docker客户端)可以通过API来调用dockerd的各种功能,实现对容器的操作。但时至今日,在dockerd中实现的容器管理功能也已经不多,主要是镜像下载和管理相关的功能,其他的容器操作能力已经分离到containerd组件中,通过grpc接口来调用。又被称为docker engine、docker daemon。

containerd:另外一个后台守护进程,是真正实现容器创建、运行、销毁等各类操作的组件,它也包含了独立于dockerd的镜像下载、上传和管理功能。containerd向外暴露grpc形式的接口来提供容器操作能力。dockerd在启动时会自动启动containerd作为其容器管理工具,当然containerd也可以独立运行。containerd是从docker中分离出来的容器管理相关的核心能力组件,https://www.docker.com/blog/docker-containerd-integration/和https://www.docker.com/blog/what-is-containerd-runtime/介绍了将其从docker中独立出来的原因。但是为了支持容器功能实现的灵活性和开放性,更底层的容器操作实现(例如cgroup的创建和管理、namespace的创建和使用等)并不是由containerd提供的,而是通过调用另一个组件runc来实现。

因此,我们的docker服务启动就包括启动dockerd和containerd这两个守护进程。

docker是一个cs架构,我们启动docker的服务,就是启动docker s端,而s端其实就是在启动dockerd这个进程,dockerd为我们提供手动启动debug方式,可以看到docker s端启动日志,即dockerd --debug,因此,我们只要分析这个debug日志即可了解docker服务是怎么启动的,启动日志见附录。

这里我们以docker 20为例分析一下

[root@localhost ~]# docker version 
Client: Docker Engine - CommunityVersion:           20.10.18API version:       1.41Go version:        go1.18.6Git commit:        b40c2f6Built:             Thu Sep  8 23:14:08 2022OS/Arch:           linux/amd64Context:           defaultExperimental:      trueServer: Docker Engine - CommunityEngine:Version:          20.10.18API version:      1.41 (minimum version 1.12)Go version:       go1.18.6Git commit:       e42327aBuilt:            Thu Sep  8 23:12:21 2022OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.8GitCommit:        9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6runc:Version:          1.1.4GitCommit:        v1.1.4-0-g5fd4c4ddocker-init:Version:          0.19.0GitCommit:        de40ad0
[root@localhost ~]# 

docker服务启动流程:

cmd/dockerd/daemon.go ------> start()

1. 启动containerd,通过查看containerd的服务文件

containerd启动过程会干啥呢?

为了解耦,containerd 将系统划分成了不同的组件,每个组件都由一个或多个模块协作完成(Core 部分),每一种类型的模块都以插件的形式集成到 Containerd 中,而且插件之间是相互依赖的,有多种类型的插件,包括 Service Plugin、Metadata Plugin、GC Plugin、Runtime Plugin 等,其中 Service Plugin 又会依赖 Metadata Plugin、GC Plugin 和 Runtime Plugin。

因此containerd启动过程就干了三件事:

1. modprobe overlay

2. 启动containerd守护进程

3. 进行持久化数据,创建插件目录,/var/lib/containerd

初始化完成containerd之后,就进入到dockerd的初始化了

daemon/daemon.go --------> NewDaemon()

dockerd daemon启动过程比较复杂,主要干的事情如下:

1. 监听metrics.sock

2. 设置默认的日志驱动

3. 从 /var/lib/docker/containers 读取所有目录,启动daemon的时候需要重新注册,包括restart,remove,因此这里可能是起不来的原因,所以我们没有更好的办法就删除这个目录。

4. 检测网桥信息

5. 配置Docker容器的MTU

6. 查验容器通信配置,即iptables规则的添加,docker在启动过程中会将一些docker网络需要的规则写入iptables表

7. 初始化router

8. API server 开始监听,提供api访问服务

setupIP4Tables //设定iptables规则

若再次出现该问题,确认以下几个情况:

1. docker ps 能否看到相关容器

2. 若第一步可以看到,docker exec能否进去,docker stop 相关容器是否正常执行

3. free -h

 一般来讲,我们通过执行dockerd --debug就可以看到问题出现在哪一步

提供以下解决方法(尝试):

  1. 最首先的还是看docker服务启动日志,systemctl status docker,journalctl -xefu docker
  2. Yum remove docker,卸载docker相关安装包,然后重新安装docker相关包。
  3. 执行dockerd –debug查看能否正常启动
  4. 杀掉docker相关进程,备份/var/lib/docker目录,删除该目录
  5. 以上要是都不行,reboot或者reset机器吧  good luck😂

附录:

[root@localhost ~]# dockerd --debug 
INFO[2022-10-15T19:41:21.079272629+08:00] Starting up                                  
DEBU[2022-10-15T19:41:21.079968675+08:00] Listener created for HTTP on unix (/var/run/docker.sock) 
DEBU[2022-10-15T19:41:21.079997108+08:00] Containerd not running, starting daemon managed containerd 
INFO[2022-10-15T19:41:21.082116760+08:00] libcontainerd: started new containerd process  pid=5627
INFO[2022-10-15T19:41:21.082154147+08:00] parsed scheme: "unix"                         module=grpc
INFO[2022-10-15T19:41:21.082161249+08:00] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2022-10-15T19:41:21.082286621+08:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}  module=grpc
INFO[2022-10-15T19:41:21.082298831+08:00] ClientConn switching balancer to "pick_first"  module=grpc
WARN[0000] containerd config version `1` has been deprecated and will be removed in containerd v2.0, please switch to version `2`, see https://github.com/containerd/containerd/blob/main/docs/PLUGINS.md#version-header 
INFO[2022-10-15T19:41:21.108770179+08:00] starting containerd                           revision=9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6 version=1.6.8
INFO[2022-10-15T19:41:21.120115709+08:00] loading plugin "io.containerd.content.v1.content"...  type=io.containerd.content.v1
INFO[2022-10-15T19:41:21.120264378+08:00] loading plugin "io.containerd.snapshotter.v1.aufs"...  type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.121785212+08:00] skip loading plugin "io.containerd.snapshotter.v1.aufs"...  error="aufs is not supported (modprobe aufs failed: exit status 1 \"modprobe: FATAL: Module aufs not found.\\n\"): skip plugin" type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.121855407+08:00] loading plugin "io.containerd.snapshotter.v1.btrfs"...  type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.122041014+08:00] skip loading plugin "io.containerd.snapshotter.v1.btrfs"...  error="path /var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.btrfs (xfs) must be a btrfs filesystem to be used with the btrfs snapshotter: skip plugin" type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.122069943+08:00] loading plugin "io.containerd.snapshotter.v1.devmapper"...  type=io.containerd.snapshotter.v1
WARN[2022-10-15T19:41:21.122080886+08:00] failed to load plugin io.containerd.snapshotter.v1.devmapper  error="devmapper not configured"
INFO[2022-10-15T19:41:21.122121203+08:00] loading plugin "io.containerd.snapshotter.v1.native"...  type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.122143621+08:00] loading plugin "io.containerd.snapshotter.v1.overlayfs"...  type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.122274499+08:00] loading plugin "io.containerd.snapshotter.v1.zfs"...  type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.122463964+08:00] skip loading plugin "io.containerd.snapshotter.v1.zfs"...  error="path /var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.zfs must be a zfs filesystem to be used with the zfs snapshotter: skip plugin" type=io.containerd.snapshotter.v1
INFO[2022-10-15T19:41:21.122491251+08:00] loading plugin "io.containerd.metadata.v1.bolt"...  type=io.containerd.metadata.v1
WARN[2022-10-15T19:41:21.122505607+08:00] could not use snapshotter devmapper in metadata plugin  error="devmapper not configured"
INFO[2022-10-15T19:41:21.122512668+08:00] metadata content store policy set             policy=shared
INFO[2022-10-15T19:41:21.122635884+08:00] loading plugin "io.containerd.differ.v1.walking"...  type=io.containerd.differ.v1
INFO[2022-10-15T19:41:21.122666420+08:00] loading plugin "io.containerd.event.v1.exchange"...  type=io.containerd.event.v1
INFO[2022-10-15T19:41:21.122676399+08:00] loading plugin "io.containerd.gc.v1.scheduler"...  type=io.containerd.gc.v1
INFO[2022-10-15T19:41:21.122692291+08:00] loading plugin "io.containerd.service.v1.introspection-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122704696+08:00] loading plugin "io.containerd.service.v1.containers-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122715472+08:00] loading plugin "io.containerd.service.v1.content-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122724400+08:00] loading plugin "io.containerd.service.v1.diff-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122734707+08:00] loading plugin "io.containerd.service.v1.images-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122743698+08:00] loading plugin "io.containerd.service.v1.leases-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122752006+08:00] loading plugin "io.containerd.service.v1.namespaces-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122826791+08:00] loading plugin "io.containerd.service.v1.snapshots-service"...  type=io.containerd.service.v1
INFO[2022-10-15T19:41:21.122837025+08:00] loading plugin "io.containerd.runtime.v1.linux"...  type=io.containerd.runtime.v1
INFO[2022-10-15T19:41:21.122928456+08:00] loading plugin "io.containerd.runtime.v2.task"...  type=io.containerd.runtime.v2
INFO[2022-10-15T19:41:21.123030248+08:00] loading plugin "io.containerd.monitor.v1.cgroups"...  type=io.containerd.monitor.v1
INFO[2022-10-15T19:41:21.123390292+08:00] loading plugin "io.containerd.service.v1.tasks-service"...  type=io.containerd.service.v1
DEBU[2022-10-15T19:41:21.123420919+08:00] No RDT config file specified, RDT not configured 
INFO[2022-10-15T19:41:21.123432023+08:00] loading plugin "io.containerd.grpc.v1.introspection"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123441039+08:00] loading plugin "io.containerd.internal.v1.restart"...  type=io.containerd.internal.v1
INFO[2022-10-15T19:41:21.123500897+08:00] loading plugin "io.containerd.grpc.v1.containers"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123513863+08:00] loading plugin "io.containerd.grpc.v1.content"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123522647+08:00] loading plugin "io.containerd.grpc.v1.diff"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123530624+08:00] loading plugin "io.containerd.grpc.v1.events"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123561736+08:00] loading plugin "io.containerd.grpc.v1.healthcheck"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123572655+08:00] loading plugin "io.containerd.grpc.v1.images"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123625930+08:00] loading plugin "io.containerd.grpc.v1.leases"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123636931+08:00] loading plugin "io.containerd.grpc.v1.namespaces"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123645759+08:00] loading plugin "io.containerd.internal.v1.opt"...  type=io.containerd.internal.v1
INFO[2022-10-15T19:41:21.123729151+08:00] loading plugin "io.containerd.grpc.v1.snapshots"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123787334+08:00] loading plugin "io.containerd.grpc.v1.tasks"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123799937+08:00] loading plugin "io.containerd.grpc.v1.version"...  type=io.containerd.grpc.v1
INFO[2022-10-15T19:41:21.123809239+08:00] loading plugin "io.containerd.tracing.processor.v1.otlp"...  type=io.containerd.tracing.processor.v1
INFO[2022-10-15T19:41:21.123818607+08:00] skip loading plugin "io.containerd.tracing.processor.v1.otlp"...  error="no OpenTelemetry endpoint: skip plugin" type=io.containerd.tracing.processor.v1
INFO[2022-10-15T19:41:21.123825792+08:00] loading plugin "io.containerd.internal.v1.tracing"...  type=io.containerd.internal.v1
ERRO[2022-10-15T19:41:21.123901506+08:00] failed to initialize a tracing processor "otlp"  error="no OpenTelemetry endpoint: skip plugin"
INFO[2022-10-15T19:41:21.124203328+08:00] serving...                                    address=/var/run/docker/containerd/containerd-debug.sock
INFO[2022-10-15T19:41:21.124278708+08:00] serving...                                    address=/var/run/docker/containerd/containerd.sock.ttrpc
INFO[2022-10-15T19:41:21.124319613+08:00] serving...                                    address=/var/run/docker/containerd/containerd.sock
DEBU[2022-10-15T19:41:21.124329165+08:00] sd notification                               error="<nil>" notified=false state="READY=1"
INFO[2022-10-15T19:41:21.124336787+08:00] containerd successfully booted in 0.016405s  
DEBU[2022-10-15T19:41:21.128177139+08:00] Created containerd monitoring client          address=/var/run/docker/containerd/containerd.sock
DEBU[2022-10-15T19:41:21.129146455+08:00] Started daemon managed containerd            
DEBU[2022-10-15T19:41:21.129827323+08:00] Golang's threads limit set to 13860          
INFO[2022-10-15T19:41:21.130070687+08:00] parsed scheme: "unix"                         module=grpc
INFO[2022-10-15T19:41:21.130095506+08:00] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2022-10-15T19:41:21.130119927+08:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}  module=grpc
INFO[2022-10-15T19:41:21.130139261+08:00] ClientConn switching balancer to "pick_first"  module=grpc
DEBU[2022-10-15T19:41:21.130245559+08:00] metrics API listening on /var/run/docker/metrics.sock 
INFO[2022-10-15T19:41:21.131118963+08:00] parsed scheme: "unix"                         module=grpc
INFO[2022-10-15T19:41:21.131145630+08:00] scheme "unix" not registered, fallback to default scheme  module=grpc
INFO[2022-10-15T19:41:21.131160086+08:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock  <nil> 0 <nil>}] <nil> <nil>}  module=grpc
INFO[2022-10-15T19:41:21.131168435+08:00] ClientConn switching balancer to "pick_first"  module=grpc
DEBU[2022-10-15T19:41:21.131769249+08:00] Using default logging driver json-file       
DEBU[2022-10-15T19:41:21.131825675+08:00] [graphdriver] priority list: [btrfs zfs overlay2 fuse-overlayfs aufs overlay devicemapper vfs] 
DEBU[2022-10-15T19:41:21.131939464+08:00] processing event stream                       module=libcontainerd namespace=plugins.moby
DEBU[2022-10-15T19:41:21.147248709+08:00] backingFs=xfs, projectQuotaSupported=false, indexOff="", userxattr=""  storage-driver=overlay2
INFO[2022-10-15T19:41:21.147298646+08:00] [graphdriver] using prior storage driver: overlay2 
DEBU[2022-10-15T19:41:21.147315713+08:00] Initialized graph driver overlay2            
DEBU[2022-10-15T19:41:21.147884425+08:00] No quota support for local volumes in /var/lib/docker/volumes: Filesystem does not support, or has not enabled quotas 
DEBU[2022-10-15T19:41:21.149555240+08:00] Max Concurrent Downloads: 3                  
DEBU[2022-10-15T19:41:21.149580808+08:00] Max Concurrent Uploads: 5                    
DEBU[2022-10-15T19:41:21.149585975+08:00] Max Download Attempts: 5                     
INFO[2022-10-15T19:41:21.149601246+08:00] Loading containers: start.                   
DEBU[2022-10-15T19:41:21.149663310+08:00] processing event stream                       module=libcontainerd namespace=moby
DEBU[2022-10-15T19:41:21.150275149+08:00] loaded container                              container=3f64d28ba31ef92740afe1f908db51f1192e69e546291805a6da11a934486e85 paused=false running=false
DEBU[2022-10-15T19:41:21.153608049+08:00] restoring container                           container=3f64d28ba31ef92740afe1f908db51f1192e69e546291805a6da11a934486e85 paused=false restarting=false running=false
DEBU[2022-10-15T19:41:21.154209488+08:00] alive: false                                  container=3f64d28ba31ef92740afe1f908db51f1192e69e546291805a6da11a934486e85 paused=false restarting=false running=false
DEBU[2022-10-15T19:41:21.154238916+08:00] done restoring container                      container=3f64d28ba31ef92740afe1f908db51f1192e69e546291805a6da11a934486e85 paused=false restarting=false running=false
DEBU[2022-10-15T19:41:21.154287260+08:00] Option Experimental: false                   
DEBU[2022-10-15T19:41:21.154344190+08:00] Option DefaultDriver: bridge                 
DEBU[2022-10-15T19:41:21.154354959+08:00] Option DefaultNetwork: bridge                
DEBU[2022-10-15T19:41:21.154359153+08:00] Network Control Plane MTU: 1500              
DEBU[2022-10-15T19:41:21.159662888+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-ISOLATION] 
DEBU[2022-10-15T19:41:21.160621845+08:00] /usr/sbin/iptables, [--wait -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[2022-10-15T19:41:21.161795289+08:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER] 
DEBU[2022-10-15T19:41:21.162863310+08:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[2022-10-15T19:41:21.163936247+08:00] /usr/sbin/iptables, [--wait -t nat -D PREROUTING] 
DEBU[2022-10-15T19:41:21.165127694+08:00] /usr/sbin/iptables, [--wait -t nat -D OUTPUT] 
DEBU[2022-10-15T19:41:21.166008360+08:00] /usr/sbin/iptables, [--wait -t nat -F DOCKER] 
DEBU[2022-10-15T19:41:21.166992600+08:00] /usr/sbin/iptables, [--wait -t nat -X DOCKER] 
DEBU[2022-10-15T19:41:21.167986798+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER] 
DEBU[2022-10-15T19:41:21.168998918+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER] 
DEBU[2022-10-15T19:41:21.170119988+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.171338983+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.172773117+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.173826084+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.174759635+08:00] /usr/sbin/iptables, [--wait -t filter -F DOCKER-ISOLATION] 
DEBU[2022-10-15T19:41:21.175516502+08:00] /usr/sbin/iptables, [--wait -t filter -X DOCKER-ISOLATION] 
DEBU[2022-10-15T19:41:21.176633678+08:00] /usr/sbin/iptables, [--wait -t nat -n -L DOCKER] 
DEBU[2022-10-15T19:41:21.177878742+08:00] /usr/sbin/iptables, [--wait -t nat -N DOCKER] 
DEBU[2022-10-15T19:41:21.179211884+08:00] /usr/sbin/iptables, [--wait -t filter -n -L DOCKER] 
DEBU[2022-10-15T19:41:21.180566259+08:00] /usr/sbin/iptables, [--wait -t filter -n -L DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.181664325+08:00] /usr/sbin/iptables, [--wait -t filter -n -L DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.182619632+08:00] /usr/sbin/iptables, [--wait -t filter -N DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.183698211+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-1 -j RETURN] 
DEBU[2022-10-15T19:41:21.184660229+08:00] /usr/sbin/iptables, [--wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN] 
DEBU[2022-10-15T19:41:21.185664051+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-2 -j RETURN] 
DEBU[2022-10-15T19:41:21.188121097+08:00] /usr/sbin/iptables, [--wait -A DOCKER-ISOLATION-STAGE-2 -j RETURN] 
DEBU[2022-10-15T19:41:21.192328299+08:00] /usr/sbin/iptables, [--wait -t nat -C POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE] 
DEBU[2022-10-15T19:41:21.193248300+08:00] /usr/sbin/iptables, [--wait -t nat -C DOCKER -i docker0 -j RETURN] 
DEBU[2022-10-15T19:41:21.194175582+08:00] /usr/sbin/iptables, [--wait -t nat -I DOCKER -i docker0 -j RETURN] 
DEBU[2022-10-15T19:41:21.195213123+08:00] /usr/sbin/iptables, [--wait -D FORWARD -i docker0 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.196110463+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.197259027+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.198404258+08:00] /usr/sbin/iptables, [--wait -t nat -C PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[2022-10-15T19:41:21.199453036+08:00] /usr/sbin/iptables, [--wait -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[2022-10-15T19:41:21.200780336+08:00] /usr/sbin/iptables, [--wait -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8] 
DEBU[2022-10-15T19:41:21.201734492+08:00] /usr/sbin/iptables, [--wait -t nat -A OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8] 
DEBU[2022-10-15T19:41:21.202760244+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.203603688+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.204579693+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.205931906+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.207397466+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.208290824+08:00] /usr/sbin/iptables, [--wait -D FORWARD -j DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.209274011+08:00] /usr/sbin/iptables, [--wait -I FORWARD -j DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.210204484+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.211063272+08:00] /usr/sbin/iptables, [--wait -t filter -I DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.212171796+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.213450432+08:00] /usr/sbin/iptables, [--wait -t filter -I DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.214963139+08:00] Network (71beb0a) restored                   
DEBU[2022-10-15T19:41:21.215726339+08:00] Allocating IPv4 pools for network bridge (71beb0a9302dfbcb53030b270c3349d5ca78532d6defe66ddb73594b5b6c3333) 
DEBU[2022-10-15T19:41:21.215773745+08:00] RequestPool(LocalDefault, 172.17.0.0/16, , map[], false) 
DEBU[2022-10-15T19:41:21.215796208+08:00] RequestAddress(LocalDefault/172.17.0.0/16, 172.17.0.1, map[RequestAddressType:com.docker.network.gateway]) 
DEBU[2022-10-15T19:41:21.215808832+08:00] Request address PoolID:172.17.0.0/16 App: ipam/default/data, ID: LocalDefault/172.17.0.0/16, DBIndex: 0x0, Bits: 65536, Unselected: 65534, Sequence: (0x80000000, 1)->(0x0, 2046)->(0x1, 1)->end Curr:0 Serial:false PrefAddress:172.17.0.1  
DEBU[2022-10-15T19:41:21.216797140+08:00] /usr/sbin/iptables, [--wait -t nat -C POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE] 
DEBU[2022-10-15T19:41:21.217865755+08:00] /usr/sbin/iptables, [--wait -t nat -D POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE] 
DEBU[2022-10-15T19:41:21.218962839+08:00] /usr/sbin/iptables, [--wait -t nat -C DOCKER -i docker0 -j RETURN] 
DEBU[2022-10-15T19:41:21.220171662+08:00] /usr/sbin/iptables, [--wait -t nat -D DOCKER -i docker0 -j RETURN] 
DEBU[2022-10-15T19:41:21.221813508+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.222887461+08:00] /usr/sbin/iptables, [--wait -D FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.224157776+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.224556187+08:00] garbage collected                             d="525.124µs"
DEBU[2022-10-15T19:41:21.225127621+08:00] /usr/sbin/iptables, [--wait -D FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.226040182+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.226865487+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.227793795+08:00] /usr/sbin/iptables, [--wait -D FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.229117606+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.230311400+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.231515777+08:00] /usr/sbin/iptables, [--wait -D FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.233003612+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.234091585+08:00] /usr/sbin/iptables, [--wait -t filter -D DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.235181467+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.236022568+08:00] /usr/sbin/iptables, [--wait -t filter -D DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.237607372+08:00] releasing IPv4 pools from network bridge (71beb0a9302dfbcb53030b270c3349d5ca78532d6defe66ddb73594b5b6c3333) 
DEBU[2022-10-15T19:41:21.237648299+08:00] ReleaseAddress(LocalDefault/172.17.0.0/16, 172.17.0.1) 
DEBU[2022-10-15T19:41:21.237664655+08:00] Released address PoolID:LocalDefault/172.17.0.0/16, Address:172.17.0.1 Sequence:App: ipam/default/data, ID: LocalDefault/172.17.0.0/16, DBIndex: 0x0, Bits: 65536, Unselected: 65533, Sequence: (0xc0000000, 1)->(0x0, 2046)->(0x1, 1)->end Curr:0 
DEBU[2022-10-15T19:41:21.237670731+08:00] ReleasePool(LocalDefault/172.17.0.0/16)      
DEBU[2022-10-15T19:41:21.239646474+08:00] cleanupServiceDiscovery for network:71beb0a9302dfbcb53030b270c3349d5ca78532d6defe66ddb73594b5b6c3333 
DEBU[2022-10-15T19:41:21.239672557+08:00] cleanupServiceBindings for 71beb0a9302dfbcb53030b270c3349d5ca78532d6defe66ddb73594b5b6c3333 
INFO[2022-10-15T19:41:21.240989180+08:00] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address 
DEBU[2022-10-15T19:41:21.241044641+08:00] Allocating IPv4 pools for network bridge (c1b8a375a0246ac5ebf704b187679fa7a056dc5394bfab75fae2d684bdfabdaf) 
DEBU[2022-10-15T19:41:21.241058869+08:00] RequestPool(LocalDefault, 172.17.0.0/16, , map[], false) 
DEBU[2022-10-15T19:41:21.241074985+08:00] RequestAddress(LocalDefault/172.17.0.0/16, 172.17.0.1, map[RequestAddressType:com.docker.network.gateway]) 
DEBU[2022-10-15T19:41:21.241084947+08:00] Request address PoolID:172.17.0.0/16 App: ipam/default/data, ID: LocalDefault/172.17.0.0/16, DBIndex: 0x0, Bits: 65536, Unselected: 65534, Sequence: (0x80000000, 1)->(0x0, 2046)->(0x1, 1)->end Curr:0 Serial:false PrefAddress:172.17.0.1  
DEBU[2022-10-15T19:41:21.241307237+08:00] /usr/sbin/iptables, [--wait -t nat -C POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE] 
DEBU[2022-10-15T19:41:21.242331246+08:00] /usr/sbin/iptables, [--wait -t nat -I POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE] 
DEBU[2022-10-15T19:41:21.243235141+08:00] /usr/sbin/iptables, [--wait -t nat -C DOCKER -i docker0 -j RETURN] 
DEBU[2022-10-15T19:41:21.244104459+08:00] /usr/sbin/iptables, [--wait -t nat -I DOCKER -i docker0 -j RETURN] 
DEBU[2022-10-15T19:41:21.245081831+08:00] /usr/sbin/iptables, [--wait -D FORWARD -i docker0 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.245953820+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.247215225+08:00] /usr/sbin/iptables, [--wait -I FORWARD -i docker0 -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.248630325+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.249537345+08:00] /usr/sbin/iptables, [--wait -I FORWARD -i docker0 ! -o docker0 -j ACCEPT] 
DEBU[2022-10-15T19:41:21.250598772+08:00] /usr/sbin/iptables, [--wait -t nat -C PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[2022-10-15T19:41:21.252005660+08:00] /usr/sbin/iptables, [--wait -t nat -C PREROUTING -m addrtype --dst-type LOCAL -j DOCKER] 
DEBU[2022-10-15T19:41:21.253640240+08:00] /usr/sbin/iptables, [--wait -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8] 
DEBU[2022-10-15T19:41:21.254680920+08:00] /usr/sbin/iptables, [--wait -t nat -C OUTPUT -m addrtype --dst-type LOCAL -j DOCKER ! --dst 127.0.0.0/8] 
DEBU[2022-10-15T19:41:21.255624933+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.256475499+08:00] /usr/sbin/iptables, [--wait -I FORWARD -o docker0 -j DOCKER] 
DEBU[2022-10-15T19:41:21.257527984+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.258666472+08:00] /usr/sbin/iptables, [--wait -I FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT] 
DEBU[2022-10-15T19:41:21.259866417+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.260723501+08:00] /usr/sbin/iptables, [--wait -D FORWARD -j DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.261601184+08:00] /usr/sbin/iptables, [--wait -I FORWARD -j DOCKER-ISOLATION-STAGE-1] 
DEBU[2022-10-15T19:41:21.262635185+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.263985718+08:00] /usr/sbin/iptables, [--wait -t filter -I DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2] 
DEBU[2022-10-15T19:41:21.265574600+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.267087357+08:00] /usr/sbin/iptables, [--wait -t filter -I DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP] 
DEBU[2022-10-15T19:41:21.270105025+08:00] /usr/sbin/iptables, [--wait -t filter -n -L DOCKER-USER] 
DEBU[2022-10-15T19:41:21.271099607+08:00] /usr/sbin/iptables, [--wait -t filter -C DOCKER-USER -j RETURN] 
DEBU[2022-10-15T19:41:21.271889874+08:00] /usr/sbin/iptables, [--wait -t filter -C FORWARD -j DOCKER-USER] 
DEBU[2022-10-15T19:41:21.272643823+08:00] /usr/sbin/iptables, [--wait -D FORWARD -j DOCKER-USER] 
DEBU[2022-10-15T19:41:21.273625693+08:00] /usr/sbin/iptables, [--wait -I FORWARD -j DOCKER-USER] 
INFO[2022-10-15T19:41:21.275867320+08:00] Loading containers: done.                    
INFO[2022-10-15T19:41:21.291334079+08:00] Docker daemon                                 commit=e42327a graphdriver(s)=overlay2 version=20.10.18
INFO[2022-10-15T19:41:21.291396656+08:00] Daemon has completed initialization          
DEBU[2022-10-15T19:41:21.302689342+08:00] Registering routers                          
DEBU[2022-10-15T19:41:21.302727253+08:00] Registering GET, /containers/{name:.*}/checkpoints 
DEBU[2022-10-15T19:41:21.302805246+08:00] Registering POST, /containers/{name:.*}/checkpoints 
DEBU[2022-10-15T19:41:21.302855294+08:00] Registering DELETE, /containers/{name}/checkpoints/{checkpoint} 
DEBU[2022-10-15T19:41:21.302927153+08:00] Registering HEAD, /containers/{name:.*}/archive 
DEBU[2022-10-15T19:41:21.302964644+08:00] Registering GET, /containers/json            
DEBU[2022-10-15T19:41:21.302999650+08:00] Registering GET, /containers/{name:.*}/export 
DEBU[2022-10-15T19:41:21.303042325+08:00] Registering GET, /containers/{name:.*}/changes 
DEBU[2022-10-15T19:41:21.303112224+08:00] Registering GET, /containers/{name:.*}/json  
DEBU[2022-10-15T19:41:21.303144701+08:00] Registering GET, /containers/{name:.*}/top   
DEBU[2022-10-15T19:41:21.303173990+08:00] Registering GET, /containers/{name:.*}/logs  
DEBU[2022-10-15T19:41:21.303236357+08:00] Registering GET, /containers/{name:.*}/stats 
DEBU[2022-10-15T19:41:21.303268127+08:00] Registering GET, /containers/{name:.*}/attach/ws 
DEBU[2022-10-15T19:41:21.303332748+08:00] Registering GET, /exec/{id:.*}/json          
DEBU[2022-10-15T19:41:21.303362205+08:00] Registering GET, /containers/{name:.*}/archive 
DEBU[2022-10-15T19:41:21.303392095+08:00] Registering POST, /containers/create         
DEBU[2022-10-15T19:41:21.303536750+08:00] Registering POST, /containers/{name:.*}/kill 
DEBU[2022-10-15T19:41:21.303699624+08:00] Registering POST, /containers/{name:.*}/pause 
DEBU[2022-10-15T19:41:21.303776035+08:00] Registering POST, /containers/{name:.*}/unpause 
DEBU[2022-10-15T19:41:21.305764021+08:00] Registering POST, /containers/{name:.*}/restart 
DEBU[2022-10-15T19:41:21.305837641+08:00] Registering POST, /containers/{name:.*}/start 
DEBU[2022-10-15T19:41:21.305890884+08:00] Registering POST, /containers/{name:.*}/stop 
DEBU[2022-10-15T19:41:21.305937905+08:00] Registering POST, /containers/{name:.*}/wait 
DEBU[2022-10-15T19:41:21.305985465+08:00] Registering POST, /containers/{name:.*}/resize 
DEBU[2022-10-15T19:41:21.306036076+08:00] Registering POST, /containers/{name:.*}/attach 
DEBU[2022-10-15T19:41:21.306083798+08:00] Registering POST, /containers/{name:.*}/copy 
DEBU[2022-10-15T19:41:21.306131425+08:00] Registering POST, /containers/{name:.*}/exec 
DEBU[2022-10-15T19:41:21.306175303+08:00] Registering POST, /exec/{name:.*}/start      
DEBU[2022-10-15T19:41:21.306219688+08:00] Registering POST, /exec/{name:.*}/resize     
DEBU[2022-10-15T19:41:21.306264043+08:00] Registering POST, /containers/{name:.*}/rename 
DEBU[2022-10-15T19:41:21.306312261+08:00] Registering POST, /containers/{name:.*}/update 
DEBU[2022-10-15T19:41:21.306358328+08:00] Registering POST, /containers/prune          
DEBU[2022-10-15T19:41:21.306524675+08:00] Registering POST, /commit                    
DEBU[2022-10-15T19:41:21.306564015+08:00] Registering PUT, /containers/{name:.*}/archive 
DEBU[2022-10-15T19:41:21.306614730+08:00] Registering DELETE, /containers/{name:.*}    
DEBU[2022-10-15T19:41:21.306663807+08:00] Registering GET, /images/json                
DEBU[2022-10-15T19:41:21.306697071+08:00] Registering GET, /images/search              
DEBU[2022-10-15T19:41:21.306750976+08:00] Registering GET, /images/get                 
DEBU[2022-10-15T19:41:21.306792419+08:00] Registering GET, /images/{name:.*}/get       
DEBU[2022-10-15T19:41:21.306838063+08:00] Registering GET, /images/{name:.*}/history   
DEBU[2022-10-15T19:41:21.306884614+08:00] Registering GET, /images/{name:.*}/json      
DEBU[2022-10-15T19:41:21.306929258+08:00] Registering POST, /images/load               
DEBU[2022-10-15T19:41:21.306960919+08:00] Registering POST, /images/create             
DEBU[2022-10-15T19:41:21.306993738+08:00] Registering POST, /images/{name:.*}/push     
DEBU[2022-10-15T19:41:21.307039396+08:00] Registering POST, /images/{name:.*}/tag      
DEBU[2022-10-15T19:41:21.307527025+08:00] Registering POST, /images/prune              
DEBU[2022-10-15T19:41:21.307592196+08:00] Registering DELETE, /images/{name:.*}        
DEBU[2022-10-15T19:41:21.307627608+08:00] Registering OPTIONS, /{anyroute:.*}          
DEBU[2022-10-15T19:41:21.307698688+08:00] Registering GET, /_ping                      
DEBU[2022-10-15T19:41:21.307760175+08:00] Registering HEAD, /_ping                     
DEBU[2022-10-15T19:41:21.307789887+08:00] Registering GET, /events                     
DEBU[2022-10-15T19:41:21.307820290+08:00] Registering GET, /info                       
DEBU[2022-10-15T19:41:21.307849486+08:00] Registering GET, /version                    
DEBU[2022-10-15T19:41:21.307924864+08:00] Registering GET, /system/df                  
DEBU[2022-10-15T19:41:21.308020436+08:00] Registering POST, /auth                      
DEBU[2022-10-15T19:41:21.308052933+08:00] Registering GET, /volumes                    
DEBU[2022-10-15T19:41:21.308100915+08:00] Registering GET, /volumes/{name:.*}          
DEBU[2022-10-15T19:41:21.308151007+08:00] Registering POST, /volumes/create            
DEBU[2022-10-15T19:41:21.308200839+08:00] Registering POST, /volumes/prune             
DEBU[2022-10-15T19:41:21.308244014+08:00] Registering DELETE, /volumes/{name:.*}       
DEBU[2022-10-15T19:41:21.308288816+08:00] Registering POST, /build                     
DEBU[2022-10-15T19:41:21.308335278+08:00] Registering POST, /build/prune               
DEBU[2022-10-15T19:41:21.308357293+08:00] Registering POST, /build/cancel              
DEBU[2022-10-15T19:41:21.308411465+08:00] Registering POST, /session                   
DEBU[2022-10-15T19:41:21.308450991+08:00] Registering POST, /swarm/init                
DEBU[2022-10-15T19:41:21.308470981+08:00] Registering POST, /swarm/join                
DEBU[2022-10-15T19:41:21.308489767+08:00] Registering POST, /swarm/leave               
DEBU[2022-10-15T19:41:21.308530219+08:00] Registering GET, /swarm                      
DEBU[2022-10-15T19:41:21.308568336+08:00] Registering GET, /swarm/unlockkey            
DEBU[2022-10-15T19:41:21.308590717+08:00] Registering POST, /swarm/update              
DEBU[2022-10-15T19:41:21.308623650+08:00] Registering POST, /swarm/unlock              
DEBU[2022-10-15T19:41:21.308662465+08:00] Registering GET, /services                   
DEBU[2022-10-15T19:41:21.308681846+08:00] Registering GET, /services/{id}              
DEBU[2022-10-15T19:41:21.308753417+08:00] Registering POST, /services/create           
DEBU[2022-10-15T19:41:21.308802587+08:00] Registering POST, /services/{id}/update      
DEBU[2022-10-15T19:41:21.308873846+08:00] Registering DELETE, /services/{id}           
DEBU[2022-10-15T19:41:21.308922000+08:00] Registering GET, /services/{id}/logs         
DEBU[2022-10-15T19:41:21.308957912+08:00] Registering GET, /nodes                      
DEBU[2022-10-15T19:41:21.308993486+08:00] Registering GET, /nodes/{id}                 
DEBU[2022-10-15T19:41:21.309020518+08:00] Registering DELETE, /nodes/{id}              
DEBU[2022-10-15T19:41:21.309044886+08:00] Registering POST, /nodes/{id}/update         
DEBU[2022-10-15T19:41:21.309075204+08:00] Registering GET, /tasks                      
DEBU[2022-10-15T19:41:21.309105450+08:00] Registering GET, /tasks/{id}                 
DEBU[2022-10-15T19:41:21.309146202+08:00] Registering GET, /tasks/{id}/logs            
DEBU[2022-10-15T19:41:21.309186677+08:00] Registering GET, /secrets                    
DEBU[2022-10-15T19:41:21.309221114+08:00] Registering POST, /secrets/create            
DEBU[2022-10-15T19:41:21.309245169+08:00] Registering DELETE, /secrets/{id}            
DEBU[2022-10-15T19:41:21.309270467+08:00] Registering GET, /secrets/{id}               
DEBU[2022-10-15T19:41:21.309326788+08:00] Registering POST, /secrets/{id}/update       
DEBU[2022-10-15T19:41:21.309374271+08:00] Registering GET, /configs                    
DEBU[2022-10-15T19:41:21.309396325+08:00] Registering POST, /configs/create            
DEBU[2022-10-15T19:41:21.309443616+08:00] Registering DELETE, /configs/{id}            
DEBU[2022-10-15T19:41:21.309488191+08:00] Registering GET, /configs/{id}               
DEBU[2022-10-15T19:41:21.309529765+08:00] Registering POST, /configs/{id}/update       
DEBU[2022-10-15T19:41:21.309585963+08:00] Registering GET, /plugins                    
DEBU[2022-10-15T19:41:21.309619961+08:00] Registering GET, /plugins/{name:.*}/json     
DEBU[2022-10-15T19:41:21.309674992+08:00] Registering GET, /plugins/privileges         
DEBU[2022-10-15T19:41:21.309736401+08:00] Registering DELETE, /plugins/{name:.*}       
DEBU[2022-10-15T19:41:21.309767934+08:00] Registering POST, /plugins/{name:.*}/enable  
DEBU[2022-10-15T19:41:21.309824211+08:00] Registering POST, /plugins/{name:.*}/disable 
DEBU[2022-10-15T19:41:21.309868778+08:00] Registering POST, /plugins/pull              
DEBU[2022-10-15T19:41:21.309904209+08:00] Registering POST, /plugins/{name:.*}/push    
DEBU[2022-10-15T19:41:21.309931897+08:00] Registering POST, /plugins/{name:.*}/upgrade 
DEBU[2022-10-15T19:41:21.309958276+08:00] Registering POST, /plugins/{name:.*}/set     
DEBU[2022-10-15T19:41:21.310000689+08:00] Registering POST, /plugins/create            
DEBU[2022-10-15T19:41:21.310040050+08:00] Registering GET, /distribution/{name:.*}/json 
DEBU[2022-10-15T19:41:21.310088453+08:00] Registering POST, /grpc                      
DEBU[2022-10-15T19:41:21.310106295+08:00] Registering GET, /networks                   
DEBU[2022-10-15T19:41:21.310123589+08:00] Registering GET, /networks/                  
DEBU[2022-10-15T19:41:21.310142007+08:00] Registering GET, /networks/{id:.+}           
DEBU[2022-10-15T19:41:21.310168415+08:00] Registering POST, /networks/create           
DEBU[2022-10-15T19:41:21.310191723+08:00] Registering POST, /networks/{id:.*}/connect  
DEBU[2022-10-15T19:41:21.310232934+08:00] Registering POST, /networks/{id:.*}/disconnect 
DEBU[2022-10-15T19:41:21.310275951+08:00] Registering POST, /networks/prune            
DEBU[2022-10-15T19:41:21.310304497+08:00] Registering DELETE, /networks/{id:.*}        
INFO[2022-10-15T19:41:21.310408596+08:00] API listen on /var/run/docker.sock

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch预训练和微调:以VGG16为例

文章目录 预训练和微调代码测试结果参考来源 预训练和微调代码 数据集&#xff1a;CIFAR10 CIFAR-10数据集由10类32x32的彩色图片组成&#xff0c;一共包含60000张图片&#xff0c;每一类包含6000图片。其中50000张图片作为训练集&#xff0c;10000张图片作为测试集。数据集介…

SolidUI AI生成可视化,0.1.0版本模块划分以及源码讲解

1.背景 随着文本生成图像的语言模型兴起&#xff0c;SolidUI想帮人们快速构建可视化工具&#xff0c;可视化内容包括2D,3D,3D场景&#xff0c;从而快速构三维数据演示场景。SolidUI 是一个创新的项目&#xff0c;旨在将自然语言处理&#xff08;NLP&#xff09;与计算机图形学相…

【微信小程序-uniapp】CustomDialog 居中弹窗组件

1. 效果图 2. 组件完整代码 <template><uni-popup :ref="ref" type="center" @change

Ubuntu下配置Redis哨兵集群

目录 准备实例和配置 启动哨兵集群 测试配置 搭建一个三节点形成的Sentinel集群&#xff0c;来监管Redis主从集群。 三个sentinel哨兵实例信息如下&#xff1a; 节点IPPORTs1192.168.22.13527001s2192.168.22.13527002s3192.168.22.13527003 准备实例和配置 要在同一台虚…

组合式API

文章目录 前言了解组合式API简单类型 ref封装对象类型 user.name子组件数组类型 reactive封装 组合式 API 基础练习基础练习优化 前言 Vue 3 的组合式 API&#xff08;Composition API&#xff09;是一组函数和语法糖&#xff0c;用于更灵活和可组合地组织 Vue 组件的代码逻辑…

leetcode 538. 把二叉搜索树转换为累加树

2023.7.16 这道题利用中序遍历&#xff08;右中左&#xff09;的操作不断修改节点的值即刻&#xff0c;直接看代码&#xff1a; class Solution { public:TreeNode* convertBST(TreeNode* root) {stack<TreeNode*> stk;//前面的累加值int pre_value 0;TreeNode* cur r…

review回文子串

给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 class Solution {List<List<String>> lists new ArrayList<>(); // 用于存储所有可能…

【数据挖掘】时间序列教程【二】

2.4 示例:颗粒物浓度 在本章中,我们将使用美国环境保护署的一些空气污染数据作为运行样本。该数据集由 2 年和 5 年空气动力学直径小于或等于 3.2017 \(mu\)g/m\(^2018\) 的颗粒物组成。 我们将特别关注来自两个特定监视器的数据,一个在加利福尼亚州弗雷斯诺,另一个在密…

图片文字对齐 图片文字居中对齐

方法一: 用 vertical-align: middle; <view class="container"><view class="search"><image src="../../images/icon/search.png" alt="" /><text class="tex">搜索</text></view>&…

透彻!127.0.0.1和0.0.0.0之间的区别总算听明白了!

参考视频&#xff1a;透彻&#xff01;127.0.0.1和0.0.0.0之间的区别总算听明白了&#xff01;_哔哩哔哩_bilibili 0.0.0.0不是一个ip地址&#xff0c;而是一个通配符&#xff0c;通配当前主机上面所有的网卡&#xff08;包括虚拟网卡&#xff09;。

深度学习环境安装|PyCharm,Anaconda,PyTorch,CUDA,cuDNN等

本文参考了许多优秀博主的博客&#xff0c;大部分安装步骤可在其他博客中找到&#xff0c;鉴于我本人第一次安装后&#xff0c;时隔半年&#xff0c;我忘记了当时安装的许多细节和版本信息&#xff0c;所以再一次报错时&#xff0c;重装花费了大量时间。因此&#xff0c;我觉得…

Profibus DP主站转Modbus TCP网关profibus从站地址范围

远创智控YC-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能&#xff0c;在以太网侧实现了ModbusTcp服务器功能&#xff0c;为我们的工业自动化网络带来了全新的可能。 远创智控YC-DPM-TCP网关是如何实现这些功能的呢&#xff1f;首先&#xff0c;让我们来看看它的Profib…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

Redis---缓存双写一致性

目录 一、什么是缓存双写一致性呢&#xff1f; 1.1 双检加锁机制 二、数据库和缓存一致性的更新策略 2.1、先更新数据库&#xff0c;后更新缓存 2.2 、先更新缓存&#xff0c;后更新数据库 2.3、先删除缓存&#xff0c;在更新数据库 延时双删的策略&#xff1a; 2.4.先更新数…

Matplotlib---3D图

1. 3D图 # 3D引擎 from mpl_toolkits.mplot3d.axes3d import Axes3D fig plt.figure(figsize(8, 5)) x np.linspace(0, 100, 400) y np.sin(x) z np.cos(x)# 三维折线图 axes Axes3D(fig, auto_add_to_figureFalse) fig.add_axes(axes) axes.plot(x,y,z) plt.savefi…

Runner 介绍

Runner 介绍 概述 Runner是用来批量调用collection里某个文件夹里的全部接口的。 (注意&#xff0c;我说的是文件夹内所有接口,可以是一级文件夹&#xff0c;也可是二级文件夹) 示意图 打开runner&#xff0c;如图所示 说明 历史记录 历史执行记录 2.导入 导入别人或之…

h5页面如何与原生交互

本文讲述h5页面跟原生通信&#xff0c;比如在app内&#xff0c;调用相机&#xff0c;获取相册内的图片&#xff0c;在app内拉起微信小程序等等&#xff0c;h5页面没有这么多权限能够直接调用移动端的原生能力&#xff0c;这个时候就需要与原生进行通讯&#xff0c;传递一个信号…

Go实现在线词典翻译(三种翻译接口,结合sync)

火山翻译 首先介绍用火山翻译英译汉。 package mainimport ("bufio""bytes""encoding/json""fmt""io""log""net/http""os""strings""unicode" )type DictRequestHS st…

单片机第一季:零基础6——按键

目录 1&#xff0c;独立按键 2&#xff0c;矩阵按键 &#xff08;注意&#xff1a;文章中的代码仅供参考学习&#xff0c;实际使用时要根据需要修改&#xff09; 1&#xff0c;独立按键 按键管脚两端距离长的表示默认是导通状态&#xff0c;距离短的默认是断开状态&#xf…

Web APIs

文章目录 1.Web APIs 和 JS 基础关联性1.1 JS 的组成 2. API 和 Web API2.1 API2.2 Web API 1.Web APIs 和 JS 基础关联性 1.1 JS 的组成 2. API 和 Web API 2.1 API **API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;**是一些预先定义的函…