Docker 容器正在运行,但未显示在 docker ps 中

Docker 容器正在运行,但未显示在 docker ps 中

我正在运行全新安装的 Ubuntu Server 20.04.2。我有一个正在运行的未绑定容器,也是一个 pihole 容器。
重新启动主机服务器后,Docker 根本没有显示任何容器。也没有 docker 镜像。
但未绑定和 pihole 容器肯定在后台运行。pihole 网站可以通过主机 IP 访问,并且客户端的 DNS 请求可以毫无问题地处理。我没有“docker ps”、“docker ps -a”、“docker images”和“docker stats”的输出。
我还可以看到监听端口被“docker-pr”阻止了。
有人能帮帮我吗?我如何访问那些“不可见”的容器?

“sudo systemctl restart docker”没有带来任何变化,也尝试了以 root 身份执行上述命令。

$ docker -v 
Docker version 20.10.3, build 48d30b5
$ which docker
/usr/bin/docker
$ apt list --installed | grep 'docker'
docker-ce-cli/focal,now 5:20.10.3~3-0~ubuntu-focal amd64 [installed,automatic]
docker-ce-rootless-extras/focal,now 5:20.10.3~3-0~ubuntu-focal amd64 [installed,automatic]
docker-ce/focal,now 5:20.10.3~3-0~ubuntu-focal amd64 [installed]
$ snap list
Name    Version      Rev    Tracking       Publisher   Notes
core    16-2.48.2.1  10823  latest/stable  canonical✓  core
core18  20200707     1880   latest/stable  canonical✓  base
docker  19.03.11     471    latest/stable  canonical✓  -
lxd     4.0.2        16099  4.0/stable/…   canonical✓  -
snapd   2.45.2       8542   latest/stable  canonical✓  snapd
$ docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.11
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: 
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.4.0-65-generic
 Operating System: Ubuntu Core 16
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 7.69GiB
 Name: ubuntu
 ID: W56I:F32Q:H7O6:LWFT:AAUC:6QEI:EYOZ:HFJB:IEQ3:T6E7:ZCJG:HSJU
 Docker Root Dir: /var/snap/docker/common/var-lib-docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

答案1

就你的情况而言,你同时安装了 dockeraptsnapdocker 包。snap使用以下命令删除该包:

sudo snap remove docker

然后您可能必须重新启动您的容器(或者重新启动您的机器)。

答案2

不幸的是,这种情况时有发生。我发现的唯一解决方案是使用以下命令重新启动 Docker 服务:

$ sudo systemctl restart docker

这将终止所有正在运行的容器,但只要它们的策略是自动启动,它们就会重新上线。如果您想在重新启动 Docker 时保持容器运行,该支持文档包含步骤。唯一需要注意的是,您需要重新启动 Docker 才能启用该功能,这将强制容器重新启动。

答案3

总结一下:

  1. 以经典方式安装的 docker 组件列表。

    $ apt list --installed | grep 'docker' 
    
  2. Snap 安装程序在您的系统上安装的所有程序的列表。

    $ snap list 
    

如果 Docker 在两个列表中,则您的系统中的 Docker 数量是原来的两倍。您必须删除其中一个

$ sudo snap remove docker 

或者

$ sudo apt remove docker-buildx-plugin docker-ce-cli docker-ce-rootless-extras docker-ce docker-compose-plugin

再次运行点 1 和 2 中的命令,检查是否会找到其他名为 Docker 的内容并将其删除。

$ sudo reboot

从头开始

答案4

我遇到了同样的问题,但问题在于我在正在运行的容器上执行命令的方式。我只需执行以下命令查看执行日志,就能找出容器上的错误。

sudo docker container logs --tail 50 [container-name]

欲了解更多信息,请访问关联进入 Docker 博客。

相关内容