工欲善其事,必先利其器。

  在我们以后的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也显示了端口映射关系

最新文章

  1. 错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle
  2. C--关键字static
  3. Deep learning:四十九(RNN-RBM简单理解)
  4. iOS - iPhone开发 UILocalNotification的使用
  5. 学好C++必须要注意的十八个问题
  6. Gmail新版截图曝光 你还能认得出来吗?
  7. word2vec c代码使用说明
  8. hack在微信等webview中无法修改document.title的情况
  9. 《Linux/UNIX系统编程手册》第63章 IO多路复用、信号驱动IO以及epoll
  10. iOS12系统应用发送邮件中的附件
  11. day25:接口类和抽象类
  12. Linux中LAMP构架的实现
  13. Git_GitHub-使用过程遇到的问题——坑(持续添加)
  14. SpringBoot2.0整合mybatis、shiro、redis实现基于数据库权限管理系统
  15. Oracle导出表数据与导入表数据dmp,以及导入导出时候常见错误
  16. Python(三)之Python的表达式和语句概述
  17. html5 转义实体字符 元数据 跳转 全局属性 id class lang style
  18. [SVN技巧]代码提交中遇到的两个问题及其解决方案
  19. oracle 12C安装问题
  20. android 22.3 环境

热门文章

  1. 静态static最基础的知识
  2. Linux使用wget仿站
  3. 编译TensorFlow-serving GPU版本
  4. Blend Visual studio 和Visual studio 的区别
  5. Java 实现的 简单WordCount功能
  6. 函数参数-undefined-默认值-可选参数
  7. ELementD对象
  8. SiteMesh的简单使用
  9. [Javascirpt] What’s new in JavaScript (Google I/O ’19)
  10. js实现单例