系统环境:ubuntu 22.04 使用Portainer可视化管理docker容器

1.Portainer启动容器失败,报500错误。

并且Docker容器也突然抽风启动和重启失败,说daemon没有在运行

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

查看日志发现报错原因是找不到iptables

failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found

但是系统已经安装了 iptables,反复重装docker但仍然报同样的错误

ps@ps:~$ iptables -V
iptables v1.8.7 (legacy)

issue 里有同样因为iptables问题不能启动daemon,提出的解决方案

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

sudo dockerd

使用这种方式启动dockerd就可以正常启动daemon,并且iptables问题也可以解决

无论是使用systemctl还是service重启和启动都仍会出现之前的问题

sudo systemctl restart docker

2.在解决前面的问题后,docker可以正常启动,但对于部分容器仍然启动不了

Handler for GET /v1.37/containers/9313a0eda5fc7be85fdc2b1c5a9ff7f137bb4d6befa03f9ed06c837ac0f467d4/json returned error: write unix /var/run/docker.sock->@: write: broken pipe

在查看日志文件和分析后,发现可能是nvidia-docker的问题

Error response from daemon: unknown or invalid runtime name: nvidia Error: failed to start containers: 26224401c2e2

但是nvidia-smi正常,并且重装多次nvidia-docker后仍然有问题

这两个链接提出了解决方案:链接1   链接2

问题并不是出在nvidia-docker安装上,而是没有使用nvidia-docker去监控docker容器

sudo apt-get install -y nvidia-container-toolkit

##安装完要启动去监控docker容器
sudo nvidia-ctk runtime configure --runtime=docker

Logo

分享最新的 NVIDIA AI Software 资源以及活动/会议信息,精选收录AI相关技术内容,欢迎大家加入社区并参与讨论。

更多推荐