移除旧的版本:
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存:
sudo yum makecache fast

安装 Docker-ce:
sudo yum -y install docker-ce

启动 Docker 后台服务
sudo systemctl start docker

测试运行 hello-world
docker run hello-world

如果运行hello-world报错:

 Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused “process_linux.go:293: copying bootstrap data to pipe caused “write init-p: broken pipe””: unknown.

解决方法:升级kernel版本

#使用elrepo库
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 
#查看elrepo库里面的kernel版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

#安装kernel-ml
yum --enablerepo=elrepo-kernel install kernel-ml

#重启机器
reboot

在这里插入图片描述
修改系统默认使用的kernel版本

#修改最新版kernel为默认启动版本
vi /etc/default/grub

使用下面配置替换原来的配置

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
#重新生成kernel配置
grub2-mkconfig -o /boot/grub2/grub.cfg

#重启机器
reboot

测试运行 hello-world

#启动docker
systemctl start docker
#运行hello-world
docker run hello-world

在这里插入图片描述

参考:
http://www.runoob.com/docker/centos-docker-install.html
https://forums.docker.com/t/centos7-docker-hello-world-fails/68941/3
https://www.tecmint.com/install-upgrade-kernel-version-in-centos-7/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐