ubuntu 12.04 安装Docker 实战
2016-3-8
从网络服务商那里申请到一台Ubuntu测试服务器,用来测试安装Docker环境。
注:本人初学Docker,对Linux命令也仅是稍稍了解,如有错误,烦请告知。
查看系统相关信息
可使用命令uname -a
、uname -r
、lsb_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
版本。
运行命令:
- 升级包管理器
$ sudo apt-get update
- 执行升级Package命令
$ sudo apt-get dist-upgrade
- 重启
$ 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)
- Documentation: https://help.ubuntu.com/
New release '14.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
总结命令可能是:
$ 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
版本:
- 升级包管理器
$ sudo apt-get update
- 安装升级内核3.13必需和可选的依赖包
$ sudo apt-get install linux-generic-lts-trusty
- 重启系统
$ sudo reboot
升级步骤记录:
- 安装前查看:
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:~#
- 执行上面的安装命令
- 安装后查看:
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安装总结:
- 以sudo管理员身份登陆,这里以
root
账户登录 - 判断系统中
curl
命令是否安装:
$ whereis curl
如果已经安装,则会输出curl
命令所在的目录
3. 如果没有安装curl,则执行安装命令:
$ sudo apt-get update
$ sudo apt-get install curl
- 安装Docker:
$ curl -fsSL https://get.docker.com/ | sh
也有命令为:
$ curl -sSL https://get.docker.com/ | sudo sh
- 系统会要求输入sudo账户密码,等待安装docker及其依赖项。
- 安装完成后,会显示当前Docker的版本信息。
- 在Ubuntu系统下执行Docker命令时,每次都要输入
sudo
,同时输入密码,很累人的。 Docker 会提示将当前用户root
添加到docker 用户组中,可执行命令:
$ sudo usermod -aG docker root
注:这里的root
可换成你自己的登陆账户
8. 重启系统
$ sudo reboot
- 查看上面的命令是否生效
$ docker version
- 至此,Docker服务就安装完成了。
在Docker下运行一个输出Hello Docker
的程序:
执行命令:
$ docker run busybox /bin/echo "Hello Docker"
Hello Docker
如果本地不存在busybox
镜像,docker 会自动从官网下载相关镜像。
在Docker下搭建一个Nginx服务器:
- 从Docker Hub官网下载一个Ubuntu镜像:
$ docker pull ubuntu:14.04
- 以交互方式启动一个名称为
web
的容器,指定宿主机的8080
端口指向容器web
的80
端口:
$ 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
- 在
web
容器内输入命令:
$ curl localhost
可以看到输出了Nginx的欢迎信息Welcome to nginx!
。
5. 因为我的宿主服务器现在是联网的,所以我可以在外网访问到该Docker容器web
里的Nginx欢迎页面:
至此,我们的Nginx服务器就搭建完成了。
相关网址及参考:
- linux内核网站
- linux12.04升级内核实战
- Ubuntu 12.04安装docker体验cSphere ☆
- ubuntu12.04安装Docker
- Ubuntu Precise 12.04 (LTS) (64-bit)下面安装docker
- Ubuntu 安装Docker
- Docker官方安装教程
该文章同步发表在本人简书及博客园下,如有转载请注明出处。
ubuntu 12.04 安装Docker 实战的更多相关文章
- [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程
Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心弄崩Host的环境. 而nvidia-docker2的好处是NVidia帮你配好了Host和Container之间的CUDA相 ...
- [笔记] Ubuntu 18.04安装Docker CE及NVIDIA Container Toolkit流程
之前写的[笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程已经out了,以这篇为准. Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心 ...
- Ubuntu 20.04安装Docker
Docker学习系列文章 入门必备:十本你不容错过的Docker入门到精通书籍推荐 day1.全面的Docker快速入门教程 day2.CentOS 8.4安装Docker day3.Windows1 ...
- Ubuntu 12.04 安装 Apache2+PHP5+MySQL
LAMP是Linux web服务器组合套装的缩写,分别是Apache+MySQL+PHP.此教程教大家如何在Ubuntu 12.04 LTS server 上安装Apache2服务器,包括PHP5(m ...
- Ubuntu 12.04安装Adobe Reader
原本从Adobe 官方网站下载了 Adobe Reader, 是个rpm包,先用agt-get 装了rpm(sudo apt-get install rpm), 一安装(rpm -ivh AdobeR ...
- Ubuntu 12.04 安装MySQL
本文地址:http://www.cnblogs.com/yhLinux/p/4012689.html 本文适合新手入门. 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天 ...
- ubuntu 12.04 安装wireshark
轉載自http://blog.chinaunix.net/uid-27064719-id-3786626.html 在ubuntu 12.04下安装wireshark软件之后,打开wireshark开 ...
- ubuntu 12.04 安装 redis
原文地址:http://ijonas.com/software-development/nosql/412/ 1 Installing Redis 2.6.x on Ubuntu 12.04 and ...
- ubuntu 12.04安装TP-LINK TL-WN725N v2
用了一个上午,折腾完毕,分享如下. 1.先试了ndiswrapper和compat-wireless,各种不给力.后来看这篇博文<Ubuntu12.04下安装TL-WN322G+无线网卡驱动(R ...
随机推荐
- 找出单链表的倒数第K个(从1开始计数)结点的值
typedef struct Link { int data; struct Link* next; }NODE,*pNODE; NODE *searchK(NODE *phead, int k) { ...
- module中build.gradle文件参数含义
主要是module的build.gradle,截图如下: 01行:apply plugin: 'com.android.application' 表示该module是这个应用程序的module ...
- [2012山东ACM省赛] Pick apples (贪心,完全背包,枚举)
Pick apples Time Limit: 1000MS Memory limit: 165536K 题目描述 Once ago, there is a mystery yard which on ...
- 1.1 Activity
1.概念 Application:由多个相关的松散的与用户进行交互Activity组成,通常被打包成apk后缀文件中: Activity:就是被用来进行与用户交互和用来与android内部特性交互的组 ...
- 关于mysql占用CPU过高,问题解决
使用SHOW PROCESSLIST 查看 原因: 使用了 一个触发器 不断的去删除日志,保证每个用户的日志只有10条 去掉之后,CPU使用率从97% 降到了 %. 利用show columns fr ...
- Asp.Net Web API 2第十八课——Working with Entity Relations in OData
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html. 本文的示例代码的下载地址 ...
- 结对实验报告-android计算器设计
一:引言 目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随着 ...
- [BTS] RFC IDOC_INBOUND_ASYNCHRONOUS
Error Message: Log Name: ApplicationSource: BizTalk ServerDate: 9/10/2013 3:56: ...
- paip.自动import的实现跟java.lang.SecurityException Prohibited package name java
paip.自动import的实现跟java.lang.SecurityException Prohibited package name java #-----自动import 因为java.lang ...
- TF Boys (TensorFlow Boys ) 养成记(三)
上次说到了 TensorFlow 从文件读取数据,这次我们来谈一谈变量共享的问题. 为什么要共享变量?我举个简单的例子:例如,当我们研究生成对抗网络GAN的时候,判别器的任务是,如果接收到的是生成器生 ...