Docker 的错误:libselinux 与 fakesystemd 冲突

xia*_*ang 5 centos docker dockerfile

我正在使用 Dockerfile 构建 docker 镜像:

FROM       centos:centos7.1.1503
MAINTAINER foo <foo@bar.com>

ENV TZ "Asia/Shanghai"
ENV TERM xterm

RUN \
    yum update -y && \
    yum install -y epel-release &&\
    yum update -y && \
    yum install -y curl wget tar bzip2 unzip vim-enhanced passwd sudo yum-utils hostname net-tools rsync man && \
    yum install -y gcc gcc-c++ git make automake cmake patch logrotate python-devel libpng-devel libjpeg-devel && \
    yum install -y pwgen python-pip && \
    yum clean all
Run Code Online (Sandbox Code Playgroud)

它显示如下错误:

Error: libselinux conflicts with fakesystemd-1-17.el7.centos.noarch
Run Code Online (Sandbox Code Playgroud)

如果我更改FROM centos:centos7.1.1503FROM centos:centos7,一切都会正常工作。那么,我应该怎么做使用centos7.1.1503

我的 Linux 发行版是Ubuntu 16.04.1 LTS,我的docker版本是1.12.6

小智 1

在进行任何安装之前,尝试在您创建的容器内运行此命令:

yum swap -y fakesystemd systemd && yum clean all
yum update -y  && yum clean all
Run Code Online (Sandbox Code Playgroud)

或者在您提示的第一次运行之前的 Dockerfile 中:

RUN yum swap -y fakesystemd systemd && yum clean all \
    && yum update -y  && yum clean all
Run Code Online (Sandbox Code Playgroud)

希望有用!