1.Docker中YUM安装RPM包报错 Rpmdb checksum is invalid: dCDPT(pkg checksums): ...
在使用Dockerfile制作Docker镜像的时候,突然发现以前可以运行的 “RUN yum install -y sudo” 突然运行报错了,错误如下:
Rpmdb checksum is invalid: dCDPT(pkg checksums): sudo.x86_64 0:1.8.6p3-29.el6_9 - u The command '/bin/sh -c yum install -y sudo' returned a non-zero code: 1
在我的Dockerfile中使用的基础镜像是 “gpmidi/centos-6.5”。调研了一圈发现有人说是rpm数据库损坏需要重建。因此需要在 “yum install …” 前使用 “rpm –rebuilddb” 重建数据库。比如:
RUN rpm --rebuilddb && yum install -y sudo ...
在我的环境中发现有时候如果有多条 “RUN yum install -y …” 指令,需要在每条之前都加上 “rpm –rebuilddb”。
2.docker服务无法启动:
Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker...-enabled=false
解决方案:
意思是说:此linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,--selinux-enabled=false
重新编辑docker配置文件:
vi /etc/sysconfig/docker
改为:
然后systemctl start docker 就好啦
3.容器无法启动:
解决方案:
overlay,overlay2都为文件系统存储驱动,自从Docker1.12起,Docker也支持overlay2存储驱动,相比于overlay来说,overlay2在inode优化上更加高效。但overlay2驱动只兼容Linux kernel4.0以上的版本。
报错:
error creating overlay mount to /var/lib/docker/overlay2
vi /etc/sysconfig/ddocker-storage,添加
DOCKER_STORAGE_OPTIONS="--storage-driver overlay"