工欲善其事,必先利其器。
在我们以后的Docker学习中,都推荐使用CentOS6.5作为学习平台,毕竟Docker的内核也是基于Linux的。本文主要分享笔者在CentOS下的安装Docker的过程。
安装环境:CentOS6.5。
第一步:
首先进入Docker的官方文档,我们迅速找到CentOS下的安装说明。
在CentOS6以后的版本中,Docker包必须在EPEL库中获取,所以我们必须先安装EPEL。如果不了解EPEL(Extra Package for Enterprise Linux)的读者可以登录其官网看看,这里我也直接给出安装过程了。
先下载EPEL的rpm安装包
终端下命令:
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
下载后通过以下命令安装EPEL软件包
sudo rpm -ivh epel-release-6-8.noarch.rpm
最后会有一行:repolist:18323(数字),表示EPEL提供的包的数量,此时就已经成功了。
第二步:
回到官网,我们通过yum安装Docker,终端下命令:
sudo yum install docker-io
等待安装成功即可。
启动Docker服务。
sudo service docker start
现在我们可以尝试使用Docker了。
sudo docker pull centos:latest
安装后可能出现的错误
笔者依然尝试运行终端下输出hello world和搭建web下的hello world,但是这里出现了小问题。
终端下输出hello world时:
docker run ubuntu:14.04 /bin/echo 'Hello World'
报错:unable to remount sys readonly: unable to mount sys as readonly max retries reached
图1.终端下Hello World 失败
启动python的web程序时:
docker run -d -P training/webapp python app.py
成功并返回了容器ID,但是当我们查看该容器的状态时,在STATUS这一栏居然是Exited,也就是说创建成功了,但是启动失败了。
图2.容器启动失败
Google一番以后终于找到了问题所在,在CentOS下还需要修改相应的配置文件。
需要把/etc/sysconfig/docker文件中的other-args更改为:
other_args="--exec-driver=lxc --selinux-enabled"
否则的话不起作用,如图3所示。
图3.修改配置文件,这里是修改后的截图
接下来重启Docker服务:
sudo service docker restart
图4.重启Docker服务
再次运行,两个”hello world”都成功了。
图5.终端下的hello world
图6.此时STATUS显示已启动的时长,PORTS也显示了端口映射关系