Docker 常见异常解决方案

在使用Dockerbuild时遇到Error: Failed to download metadata for repo 'appstream'错误。尝试关闭防火墙、更新CentOS版本及更换镜像源等方法无效。最终发现是Dockerfile中run命令未执行成功,导致yum安装net-tools失败。解决方法是单独运行yum安装命令,确保其成功后再执行dockerbuild,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天使用 Docker build 命令时,遇到了一种错误

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

网友提供了很多方案:

1、关闭防火墙

docker  stop  firewall.service

执行后告知,我并没有开启防火墙,哈哈

2、CentOS版本的问题
        在2022年1月31日,CentOS团队终于从官方镜像中移除CentOS 8的所有包。
        CentOS 8已于2021年12月31日寿终正非,但软件包仍在官方镜像上保留了一段时间。现在他们被转移到https://vault.centos.org;

执行命令:

sudo dnf install -y curl policycoreutils openssh-server perl

but··提示: -bash: dnf: 未找到命令 ,OK,遇贼杀贼,yum命令

yum -y install dnf

然后继续执行build 还是报一样的错!!!

然后我就仔细研究了下build执行的 dockerfile文本,最终发现原因是,dockerfile中 run命令没有执行成功导致

The command '/bin/sh -c yum -y install net-tools' returned a non-zero code: 1

然后我删除build 中的run命令,单独拿出来执行执行, 

yum -y install net-tools

然后再执行  docker build ,终于解决了!

在使用 Docker 启动 IBM Informix 数据库容器时,可能会遇到各种异常情况。下面列出了一些常见异常以及对应的解决方案: ### 1. **无法连接数据库** - **症状**:尝试从客户端或其他服务连接到 Informix 容器时失败。 - **原因及解决办法**: - 检查是否正确配置了网络设置(如端口映射)。默认情况下,Informix 使用9086端口;确保此端口号未被占用并在docker run命令中正确指定了 `-p` 参数。 ```bash docker run -d --name informix -e LICENSE=accept -e DB_LOCALE=en_US.utf8 \ -v /path/to/informix/data:/data -p 9086:9086 ibmcom/informix-developer-database ``` - 确认防火墙规则允许外部访问该端口。 - 查看日志 (`docker logs <container_name>`) 来确定是否有认证、权限或SQL语法等问题。 ### 2. **磁盘空间不足** - 检查宿主机和挂载卷的可用磁盘空间。如果存储已满,清理不必要的文件并释放更多空间后再试。 - 修改 `ONCONFIG` 文件调整缓存大小等内存参数以减少对磁盘的需求。 ### 3. **许可证验证失败** - **症状**:启动时报 “License check failed” 错误。 - **原因及解决办法**: - 默认镜像需要接受IBM许可协议才能正常工作,在运行容器前需确认环境变量 `LICENSE=accept` 是否设置正确。 - 核实所提供的许可证密钥有效且适用于当前版本的产品。 ### 4. **初始化脚本错误** - **症状**:首次启动时执行初始化任务出错。 - **原因及解决办法**: - 初始化脚本位于 `/etc/informix/oninit.init.d/` 目录下,检查这些脚本是否存在语法错误或路径问题。 - 若自定义了额外的初始化步骤,请保证相关依赖项已经就绪再继续后续操作。 ### 5. **字符集编码不匹配** - **症状**:插入数据时可能出现乱码或是查询结果不对齐的问题。 - **原因及解决办法**: - 设置合适的区域选项(`DB_LOCALE`, `CLIENT_LOCALE`)来指定正确的语言包和地区支持信息。 ```bash docker run ... -e DB_LOCALE=zh_CN.UTF-8 ... ``` 以上是几个比较典型的案例,实际环境中还可能存在其他特殊情况。若上述方案未能解决问题,请提供更详细的日志片段以便进一步分析诊断。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值