运行MySQL Docker镜像报错/usr/bin/docker-current: missing signature key求助
解决Docker运行MySQL镜像时"missing signature key"报错的方案
执行命令:
docker run -d --name mysqldb -p 3306:3306 -v db_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql:latest
后出现报错:
/usr/bin/docker-current: missing signature key.
Docker版本:Docker version 1.13.1, build 7d71120/1.13.1
以下是针对性解决建议:
配置Docker镜像仓库GPG密钥
- 根据系统类型导入官方密钥:
- RHEL/CentOS系统:
sudo rpm --import https://download.docker.com/linux/centos/gpg - Debian/Ubuntu系统:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- RHEL/CentOS系统:
- 检查仓库配置文件,确保启用签名验证并指向正确密钥:
- CentOS:编辑
/etc/yum.repos.d/docker.repo,确保包含gpgcheck=1和gpgkey=https://download.docker.com/linux/centos/gpg - Debian/Ubuntu:编辑
/etc/apt/sources.list.d/docker.list,确保仓库地址带有signed-by=/usr/share/keyrings/docker-archive-keyring.gpg
- CentOS:编辑
- 根据系统类型导入官方密钥:
临时跳过签名验证拉取镜像
如果只是临时需要启动服务,可以添加--disable-content-trust参数跳过镜像签名检查:docker run --disable-content-trust -d --name mysqldb -p 3306:3306 -v db_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql:latest注意:此方案会降低镜像安全性,仅建议临时应急使用。
升级Docker版本(推荐长期方案)
Docker 1.13.1属于老旧版本,存在大量已知问题和安全漏洞,建议升级到官方支持的稳定版本:- 卸载旧版本:
- RHEL/CentOS:
sudo systemctl stop docker sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine - Debian/Ubuntu:
sudo systemctl stop docker sudo apt-get remove docker docker-engine docker.io containerd runc
- RHEL/CentOS:
- 按照官方标准流程安装最新稳定版Docker,完成后重新执行MySQL启动命令即可。
- 卸载旧版本:
内容的提问来源于stack exchange,提问作者Nani
相关产品推荐
相关产品推荐

