前言
前两年还是比较排除docker的,原因 1,一群所谓的大神老是吹捧docker拯救世界,烦不胜烦。
- docker对于中小公司来说的确十分鸡肋,有各种云还需要docker干什么。
- docker的技术,设计,架构要求高。中小公司很少有能可以搞定的,成本有点高
- 实在没有那个精力搞docker
对docker的思考并没有停止,也比较关注。目前在cpp的开发中,发现docker真是一个非常好的利器。docker简单符合我这个拥有技术洁癖的人。本章节主要是描述在centos7安装docker遇到的问题。
安装docker
网络上有很多博客讲述如何在centos7安装docker。但是个人建议直接安装docker官网上的流程。
遇到的问题
docker 命令执行失败
sudo docker pull ubuntuCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因
没有启动 docker服务
解决
执行 : sudo systemctl start docker
无法启动docker服务
-bash-4.2$ sudo systemctl start dockerA dependency job for docker.service failed. See 'journalctl -xe' for details.
第一步:按照控制台提示: 执行 journalctl -xe
Hint: You are currently not seeing messages from other users and the system. Users in the 'systemd-journal' group can see all messages. Pass -q to turn off this notice.No journal files were opened due to insufficient permissions.-bash-4.2$ sudo journalctl -xe-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit session-2580.scope has finished starting up.-- -- The start-up result is done.12月 26 23:50:02 iZ94ayisbnxZ CROND[13603]: (root) CMD (/usr/lib64/sa/sa1 1 1)12月 26 23:50:02 iZ94ayisbnxZ systemd[1]: Removed slice User Slice of root.-- Subject: Unit user-0.slice has finished shutting down-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit user-0.slice has finished shutting down.12月 26 23:50:43 iZ94ayisbnxZ sudo[13608]: aaaaaa : TTY=pts/1 ; PWD=/home/aaaaaa ; USER=root ; COMMAND=/sbin/service docker start12月 26 23:50:43 iZ94ayisbnxZ sudo[13608]: pam_unix(sudo:session): session opened for user root by aaaaaa(uid=0)12月 26 23:50:43 iZ94ayisbnxZ polkitd[13561]: Registered Authentication Agent for unix-process:13609:129978963 (system bus name :1.5198 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/Au12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Starting containerd container runtime...-- Subject: Unit containerd.service has begun start-up-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit containerd.service has begun starting up.12月 26 23:50:43 iZ94ayisbnxZ modprobe[13625]: modprobe: FATAL: Module overlay not found.12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Starting Docker Application Container Engine...-- Subject: Unit docker.service has begun start-up-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit docker.service has begun starting up.12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: containerd.service: control process exited, code=exited status=112月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Failed to start containerd container runtime.-- Subject: Unit containerd.service has failed-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit containerd.service has failed.-- -- The result is failed.12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Dependency failed for Docker Application Container Engine.-- Subject: Unit docker.service has failed-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit docker.service has failed.-- -- The result is dependency.12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Job docker.service/start failed with result 'dependency'.12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Unit containerd.service entered failed state.12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: containerd.service failed.12月 26 23:50:43 iZ94ayisbnxZ sudo[13608]: pam_unix(sudo:session): session closed for user root12月 26 23:50:43 iZ94ayisbnxZ systemd[1]: Stopped Docker Application Container Engine.-- Subject: Unit docker.service has finished shutting down-- Defined-By: systemd-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel-- -- Unit docker.service has finished shutting down.12月 26 23:50:43 iZ94ayisbnxZ polkitd[13561]: Unregistered Authentication Agent for unix-process:13609:129978963 (system bus name :1.5198, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disco12月 26 23:52:56 iZ94ayisbnxZ sudo[13631]: aaaaaa : TTY=pts/1 ; PWD=/home/aaaaaa ; USER=root ; COMMAND=/bin/journalctl -xe12月 26 23:52:56 iZ94ayisbnxZ sudo[13631]: pam_unix(sudo:session): session opened for user root by aaaaaa(uid=0)
哇!!!!! 一堆什么?鸟才啊耐心看了很多没有发现重点,最后在朋友的提示下找到重点
问题 modprobe没有发现overlay模块
12月 26 23:50:43 iZ94ayisbnxZ modprobe[13625]: modprobe: FATAL: Module overlay not found.
查看是否支持overlay
lsmod | grep over# 没有输出就是不支持
不支持原因很简单,低版本的linux内核不支持。
查看linux版本
uname -r3.10.0-123.9.3.el7.x86_64
解决方法
- 重新安装centos7.5 直接解决问题。可是服务上有很多东西。重新做得花很长的时间。安装,调试,解决问题。不太可取
- 升级linux内核版本,
结论
- 一定要详细的看提示,尤其是journalctl -xe的内容
- 中小公司或者独立团队一定要保持技术版本靠前,要不麻烦事情特别多
- docker是一个好玩的东西.....不一定好用。
科普
overlays是解决docker与宿主机的文件问题。一个 overlay 文件系统包含两个文件系统,一个 upper 文件系统和一个 lower 文件系统,是一种新型的联合文件系统。overlay是“覆盖…上面”的意思,overlay文件系统则表示一个文件系统覆盖在另一个文件系统上面。 为了更好的展示 overlay 文件系统的原理,现新构建一个overlay文件系统。