ubuntu 12.04 安装Docker 实战

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欢迎页面:

ubuntu 12.04 安装Docker 实战

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


相关网址及参考:


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

上一篇:ubuntu kylin 14.04安装Node.js和Famous


下一篇:ubuntu16.04安装node.js、npm