2016-3-8

从网络服务商那里申请到一台Ubuntu测试服务器,用来测试安装Docker环境。

注:本人初学Docker,对Linux命令也仅是稍稍了解,如有错误,烦请告知。


查看系统相关信息

可使用命令uname -auname -rlsb_release -a 查看:

$ uname -a
> Linux zabbix 3.2.0-29-generic #140-Ubuntu SMP Tue Feb 23 02:23:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

或:

$ uname -r
> Linux zabbix 3.2.0-29-generic

或:

$ lsb_release -a
root@zabbix:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.2 LTS
Release: 12.04
Codename: precise
root@zabbix:~#

可看到当前的系统是 Ubuntu 12.04.2 LTS x86_64 Linux zabbix 3.2.0-29-generic

Ubuntu 12.04.2 LTS 64位 内核版本是 3.2.0-29-generic


插曲1:升级Package

这是测试时在网上找到的一种方法,经测试后发现这种方式只是更新了Package,并没有升级内核版本。

即只是将系统从 12.04.2 LTS 升级到了 12.04.5 LTS 版本。

运行命令:

  1. 升级包管理器
$ sudo apt-get update
  1. 执行升级Package命令
$ sudo apt-get dist-upgrade
  1. 重启
$ sudo reboot

等待执行完成后,通过命令uname -a 查看系统信息:

$ uname -a
> Linux zabbix 3.2.0-100-generic #140-Ubuntu SMP Tue Feb 23 02:23:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

插曲2:升级到 ‘14.04.4 LTS’

上面的 “插曲1:升级Package” 执行完成后,再次用ssh登陆后会有更新提示:

ssh登陆后有更新提示:

Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-100-generic x86_64)

总结命令可能是:

$ sudo apt-get update
$ sudo apt-get do-release-upgrade
$ sudo reboot

看网上的评论说这种方式更新后偶有出现黑屏等不稳定情况,另外升级的时间也会太长,所以未尝试该方法。

上面的两个插曲可直接忽略,不影响下面的内核版本升级


升级Ubuntu的内核版本

Docker 官网上要求Docker需要在64位版本的Ubuntu上安装,并且还要保证 Ubuntu 内核的最小版本不低于 3.10。

从网上找到了两种内核版本:

  • 3.8 内核版本:
$ sudo apt-get update
$ sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
  • 3.13 内核版本:
$ sudo apt-get update
$ sudo apt-get install linux-generic-lts-trusty

这里sudo apt-get install linux-generic-lts-trusty 也可以拆成两句:

$ sudo apt-get install linux-image-generic-lts-trusty
$ sudo apt-get install linux-headers-generic-lts-trusty

总结最后的升级内核步骤,linux系统内核从3.2.0-100-generic升级到3.13版本:

  1. 升级包管理器
$ sudo apt-get update
  1. 安装升级内核3.13必需和可选的依赖包
$ sudo apt-get install linux-generic-lts-trusty
  1. 重启系统
$ sudo reboot

升级步骤记录:

  1. 安装前查看:
root@zabbix:~# uname -a
Linux zabbix 3.2.0-100-generic #140-Ubuntu SMP Tue Feb 23 02:23:59 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@zabbix:~#
root@zabbix:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
root@zabbix:~#
  1. 执行上面的安装命令
  2. 安装后查看:
root@zabbix:~# uname -a
Linux zabbix 3.13.0-81-generic #125~precise1-Ubuntu SMP Thu Mar 3 11:31:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@zabbix:~#
root@zabbix:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
root@zabbix:~#

系统内核从3.2.0-100-generic升级到了3.13.0-81-generic,接下来可以安装Docker环境了。


Docker 环境安装

Docker 的安装可查看官方的安装教程: Docker官方安装教程

Docker安装总结:

  1. 以sudo管理员身份登陆,这里以root账户登录
  2. 判断系统中 curl 命令是否安装:
$ whereis curl

如果已经安装,则会输出curl命令所在的目录

3. 如果没有安装curl,则执行安装命令:

$ sudo apt-get update
$ sudo apt-get install curl
  1. 安装Docker:
$ curl -fsSL https://get.docker.com/ | sh

也有命令为:

$ curl -sSL https://get.docker.com/ | sudo sh
  1. 系统会要求输入sudo账户密码,等待安装docker及其依赖项。
  2. 安装完成后,会显示当前Docker的版本信息。
  3. 在Ubuntu系统下执行Docker命令时,每次都要输入sudo,同时输入密码,很累人的。 Docker 会提示将当前用户root 添加到docker 用户组中,可执行命令:
$ sudo usermod -aG docker root

注:这里的root可换成你自己的登陆账户

8. 重启系统

$ sudo reboot
  1. 查看上面的命令是否生效
$ docker version
  1. 至此,Docker服务就安装完成了。

在Docker下运行一个输出Hello Docker的程序:

执行命令:

$ docker run busybox /bin/echo "Hello Docker"
Hello Docker

如果本地不存在busybox镜像,docker 会自动从官网下载相关镜像。

在Docker下搭建一个Nginx服务器:

  1. 从Docker Hub官网下载一个Ubuntu镜像:
$ docker pull ubuntu:14.04
  1. 以交互方式启动一个名称为web的容器,指定宿主机的8080端口指向容器web80端口:
$ docker run -it --name web -p 8080:80 ubuntu:14.04

然后可以看到命令提示符由 root@zabbix:~# 变成了形如 root@45738573634:~# 的形式,说明我们现在成功进入了这个名为web的容器中;

3. 在web容器内执行命令:

$ sudo apt-get install -y curl
$ sudo apt-get install -y nginx
  1. web容器内输入命令:
$ curl localhost

可以看到输出了Nginx的欢迎信息Welcome to nginx!

5. 因为我的宿主服务器现在是联网的,所以我可以在外网访问到该Docker容器web里的Nginx欢迎页面:

至此,我们的Nginx服务器就搭建完成了。


相关网址及参考:


该文章同步发表在本人简书及博客园下,如有转载请注明出处。

ubuntu 12.04 安装Docker 实战的更多相关文章

  1. [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程

    Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心弄崩Host的环境. 而nvidia-docker2的好处是NVidia帮你配好了Host和Container之间的CUDA相 ...

  2. [笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程

    之前写的[笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程已经out了,以这篇为准. Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心 ...

  3. Ubuntu 20.04安装Docker

    Docker学习系列文章 入门必备:十本你不容错过的Docker入门到精通书籍推荐 day1.全面的Docker快速入门教程 day2.CentOS 8.4安装Docker day3.Windows1 ...

  4. Ubuntu 12.04 安装 Apache2+PHP5+MySQL

    LAMP是Linux web服务器组合套装的缩写,分别是Apache+MySQL+PHP.此教程教大家如何在Ubuntu 12.04 LTS server 上安装Apache2服务器,包括PHP5(m ...

  5. Ubuntu 12.04安装Adobe Reader

    原本从Adobe 官方网站下载了 Adobe Reader, 是个rpm包,先用agt-get 装了rpm(sudo apt-get install rpm), 一安装(rpm -ivh AdobeR ...

  6. Ubuntu 12.04 安装MySQL

    本文地址:http://www.cnblogs.com/yhLinux/p/4012689.html 本文适合新手入门. 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天 ...

  7. ubuntu 12.04 安装wireshark

    轉載自http://blog.chinaunix.net/uid-27064719-id-3786626.html 在ubuntu 12.04下安装wireshark软件之后,打开wireshark开 ...

  8. ubuntu 12.04 安装 redis

    原文地址:http://ijonas.com/software-development/nosql/412/ 1 Installing Redis 2.6.x on Ubuntu 12.04 and ...

  9. ubuntu 12.04安装TP-LINK TL-WN725N v2

    用了一个上午,折腾完毕,分享如下. 1.先试了ndiswrapper和compat-wireless,各种不给力.后来看这篇博文<Ubuntu12.04下安装TL-WN322G+无线网卡驱动(R ...

随机推荐

  1. jsp_数据库的连接

    一.添加数据库以及表 在这里我们使用的是mysql数据库 二.配置数据库的驱动程序 将mysql的驱动程序复制到Tomcat目录下的lib目录中 注:在Tomcat中如果配置了新的jar包,则配置完成 ...

  2. python 之 theano学习:

    (1)theano主要支持符号矩阵表达式 (2)theano与numpy中都有broadcasting:numpy中是动态的,而theano需要在这之前就知道是哪维需要被广播.针对不同类型的数据给出如 ...

  3. mybatis异常

    一.Invalid bound statement 1.mapper.xml中namespaces错误(***) 2.方法不存在 3.方法返回值错误 二.Mapped Statements colle ...

  4. How to Call SharePoint 2013 API Service to Query The Lists

    How to Call SharePoint 2013 API In SharePoint 2013, we can query the list by it owner service, then ...

  5. ELMAH入门

    简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理程序,是一种应用广泛的错误日志工具是完全可插拔.它可以动态添加到一个正在运行的ASP.NE ...

  6. 编译生成.NET Core Framework遇到的问题

    前两天在Windows Server 2012上编译生成.NET Core Framework的代码库corefx,遭遇了几个问题,在这篇博文中记录一下. 编译生成操作方法是在命令行(Develope ...

  7. 设计模式之美:Prototype(原型)

    索引 别名 意图 结构 参与者 适用性 缺点 效果 相关模式 命名约定 实现 实现方式(一):使用一个原型管理器. 实现方式(二):使用浅拷贝实现克隆(Clone)操作. 实现方式(三):使用深拷贝实 ...

  8. NABC模型进行需求分析

    N(需求): 图书租售管理系统.图书租售管理系统必须包含有完善的图书出租功能.还租.预订(租).会员管理.积分管理.简单的财务系统.详细分类统计.各数据排行榜.详细权限管理. A(做法): 因为有一些 ...

  9. (译)开发优秀的虚拟现实体验:从开发I Expect You to Die中总结的六个要点

    这篇文章是我从网上找来的,我觉得他非常详细的解释了VR发展的需求和必要.我认为通过这篇文章可以让大家了解VR. 译者写在最前: 来到追光动画有好几个月了,抱歉这段时间也没有什么文章与大家分享,我现在在 ...

  10. 基本hibernate DEMO

    Hibernate常用API: 1Configuration: 负责加载主配置文件信息,同时也加载映射关系文件信息. 2SessionFactory 负责创建Session对象. 3Session 数 ...