我正在运行全新安装的 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
就你的情况而言,你同时安装了 dockerapt
和snap
docker 包。snap
使用以下命令删除该包:
sudo snap remove docker
然后您可能必须重新启动您的容器(或者重新启动您的机器)。
答案2
不幸的是,这种情况时有发生。我发现的唯一解决方案是使用以下命令重新启动 Docker 服务:
$ sudo systemctl restart docker
这将终止所有正在运行的容器,但只要它们的策略是自动启动,它们就会重新上线。如果您想在重新启动 Docker 时保持容器运行,该支持文档包含步骤。唯一需要注意的是,您需要重新启动 Docker 才能启用该功能,这将强制容器重新启动。
答案3
总结一下:
以经典方式安装的 docker 组件列表。
$ apt list --installed | grep 'docker'
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 博客。