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. 找出单链表的倒数第K个(从1开始计数)结点的值

    typedef struct Link { int data; struct Link* next; }NODE,*pNODE; NODE *searchK(NODE *phead, int k) { ...

  2. module中build.gradle文件参数含义

    主要是module的build.gradle,截图如下: 01行:apply plugin: 'com.android.application'    表示该module是这个应用程序的module ...

  3. [2012山东ACM省赛] Pick apples (贪心,完全背包,枚举)

    Pick apples Time Limit: 1000MS Memory limit: 165536K 题目描述 Once ago, there is a mystery yard which on ...

  4. 1.1 Activity

    1.概念 Application:由多个相关的松散的与用户进行交互Activity组成,通常被打包成apk后缀文件中: Activity:就是被用来进行与用户交互和用来与android内部特性交互的组 ...

  5. 关于mysql占用CPU过高,问题解决

    使用SHOW PROCESSLIST 查看 原因: 使用了 一个触发器 不断的去删除日志,保证每个用户的日志只有10条 去掉之后,CPU使用率从97% 降到了 %. 利用show columns fr ...

  6. Asp.Net Web API 2第十八课——Working with Entity Relations in OData

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html. 本文的示例代码的下载地址 ...

  7. 结对实验报告-android计算器设计

     一:引言  目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随着 ...

  8. [BTS] RFC IDOC_INBOUND_ASYNCHRONOUS

    Error Message: Log Name:      ApplicationSource:        BizTalk ServerDate:          9/10/2013 3:56: ...

  9. paip.自动import的实现跟java.lang.SecurityException Prohibited package name java

    paip.自动import的实现跟java.lang.SecurityException Prohibited package name java #-----自动import 因为java.lang ...

  10. TF Boys (TensorFlow Boys ) 养成记(三)

    上次说到了 TensorFlow 从文件读取数据,这次我们来谈一谈变量共享的问题. 为什么要共享变量?我举个简单的例子:例如,当我们研究生成对抗网络GAN的时候,判别器的任务是,如果接收到的是生成器生 ...