Ubuntu 18.04.6执行su root dockerd报错:无法执行二进制文件求解决
解决Ubuntu 18.04.6中
su root dockerd执行报错问题 先修正命令格式
su root dockerd的用法错误,su命令后直接跟执行命令需用-c参数指定,否则会把dockerd当作登录shell的参数而非要运行的命令。正确写法:
su root -c "dockerd" # 推荐加载root完整环境变量的写法 su - root -c "dockerd"
若修正后仍报错cannot execute binary file,按以下步骤排查
检查Docker是否正确安装
执行dpkg -l | grep docker,查看是否存在docker-ce、docker-ce-cli包。如果没有,说明Docker未正确安装,需重新部署。验证dockerd二进制架构匹配
执行file $(which dockerd),输出应包含x86-64(对应Ubuntu 18.04.6的x86架构)。如果显示其他架构(如arm),说明安装了错误版本的Docker,需卸载后重新安装对应架构的包。重新安装Docker
先卸载现有Docker组件:apt remove --purge docker-ce docker-ce-cli containerd.io apt autoremove --purge再安装官方稳定版:
apt update apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" apt update apt install docker-ce docker-ce-cli containerd.io检查dockerd文件权限
执行ls -l $(which dockerd),确保权限为-rwxr-xr-x(所有者具备执行权限)。如果没有执行权限,执行:chmod +x /usr/bin/dockerd
内容的提问来源于stack exchange,提问作者Liman
相关产品推荐
相关产品推荐

