Ubuntu 12.04上享用新版本Linux的功能_docker 3.13.0-105-generic-程序员宅基地

技术标签: 虚拟机  Linux  ubuntu  android  linux  docker  

Ubuntu 12.04上享用新版本Linux的功能

我司有一批Ubuntu 12.04的服务器暂时没有升级计划,但是像编译Android N代码等需求要求Linux的版本更新。
如何在不升级Ubuntu 12.04的情况下实现升级Linux版本的需求呢?我们有两大利器可以使用:docker和虚拟机。

Docker大法

Docker安装

升级内核

Docker需要64位的Linux支持,幸好,这条是满足的。
Docker需要kernel 3.10以上版本的支持。
首先我们查看一下当前的kernel版本号:

uname -r

我的是3.2.0-60-generic,升级吧:

sudo apt-get update
sudo apt-get install linux-image-generic-lts-trusty
sudo reboot

重启之后再看,kernel已经升级到3.13.0-105-generic,终于符合要求了。

升级apt源

首先使用https传输和ca认证:

sudo apt-get install apt-transport-https ca-certificates

然后添加GPG密钥:

sudo apt-key adv \
               --keyserver hkp://ha.pool.sks-keyservers.net:80 \
               --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

接着将”deb https://apt.dockerproject.org/repo ubuntu-precise main”这一行,添加到/etc/apt/sources.list文件的最后一行。

最后,更新索引:

sudo apt-get update
安装docker

经过前面一系列准备工作,终于可以安装docker了:

sudo apt-get install docker-engine
启动docker

安装成功后,docker服务应该已经启动了。如果没有启动,就运行下面的命令:

sudo service docker start

大功告成了,测试一下:

sudo docker run hello-world

以上详情,如有不清楚的,可以参看:https://docs.docker.com/engine/installation/linux/ubuntulinux/

不出意外的话,run hello-world是连不上的,比如说这样的错误:

docker: An error occurred trying to connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create: read unix @->/var/run/docker.sock: read: connection reset by peer.

原因你懂的,所以我们需要国内的镜像。

Docker镜像

国内有不少镜像可以使用,比如我们可以使用阿里云的。阿里云会为每个用户生成一个专用的账户,可以在这里查到:https://cr.console.aliyun.com/?spm=5176.100239.blogcont29941.12.x4Yf82#/accelerator

通过下面的命令设置就好了:

echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=你的地址\"" | sudo tee -a /etc/default/docker
sudo service docker restart

设置好了之后,再运行sudo docker run hello-world,就看到下面的输出:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete 
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/
Ubuntu

于是我们就开干吧:
先来个Ubuntu 16.04暖暖场:

sudo docker pull ubuntu:16.04
sudo docker run -it ubuntu:16.04

命令行就变成了ubuntu 16.04系统的提示符,我们apt update一下看看:

root@769f87c152a9:/# apt update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]

不错,apt能用,说明至少已经不是apt-get的时代了。xenial也替代了precise。
Ubuntu的tag可以参看:Ubuntu docker镜像

CentOS

再来个CentOS,目前最新的版本是CentOS 7.

sudo docker run -it centos:7

网址在:CentOS docker镜像

OpenSUSE

OpenSUSE的爱好者请用这个:

sudo docker run -it opensuse:leap /bin/bash

然后就可以感受一下zypper:

bash-4.3# zypper update
Retrieving repository 'NON-OSS' metadata -----------------------------------------------------------------------------------------------------------------------------------------------------------------------[\]Retrieving repository 'NON-OSS' metadata ....................................................................................................................................................................[done]
Building repository 'NON-OSS' cache .........................................................................................................................................................................[done]

目前的OpenSUSE是Leap 42.2版本。
OpenSUSE版本列表

Fedora

Fedora已经支持到25了。

sudo docker run -it fedora:25 /bin/bash

网址:Fedora版本列表

Docker下挂载主机目录

ubuntu 16.04在docker中起来了,但是,它还访问不了主机上的代码,比如Android代码。所以我们需要做路径的映射:

sudo docker run -it -v /disk08/xulun/Android:/usr/Android ubuntu:16.04

-v参数,前面是主机路径,冒号后面是容器中的挂载点。

设置docker image默认目录

这还没完,因为docker默认会将image存放在/var/lib/docker下面。正常情况下,/所挂载的点的硬盘分区一般都不会太大,如果镜像放多了,空间要不够用。
所以我们还需要将docker的工作目录更换一下,我们还是修改配置文件,在Ubuntu 12.04下,这个配置文件在/etc/default/docker中。
我们添加这么一行:

DOCKER_OPTS="$DOCKER_OPTS --graph=新的docker目录"

然后重启docker服务就好了:

sudo service docker restart

Virtual Box大法

在Ubuntu 12.04上,通过apt-get install已经可以安装virtualbox了。不过是比较老的版本,要装最新的版本还是需要小小折腾一下,不过比起docker来确实已经轻松很多了。

安装Virtual box

首先还是先更新软件源,修改/etc/apt/sources.list:
deb http://download.virtualbox.org/virtualbox/debian precise contrib

然后还是更新key:

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

最后,更新列表并安装

sudo apt-get update
sudo apt-get install virtualbox-5.1

VirtualBox都是有图像界面的,通过下载官方的iso安装操作系统就可以了。Ubuntu, Debian, OpenSUSE, CentOS等都很友好,只有Gentoo和Archlinux值得讲一讲,我们后面再说。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lusing/article/details/53613258

智能推荐

python色卡识别_用Python帮小姐姐选口红,人人都是李佳琦-程序员宅基地

文章浏览阅读502次。原标题:用Python帮小姐姐选口红,人人都是李佳琦 对于李佳琦,想必知道他的女生要远远多于男生,李佳琦最早由于直播向广大的网友们推荐口红,逐渐走红网络,被大家称作“口红一哥”。不可否认的是,李佳琦的直播能力确实很强,他能够抓住绝大多数人的心理,让大家喜欢看他的直播,看他直播推荐的口红适不适合自己,色号适合什么样子的妆容。为了提升效率,让自己的家人或者女友能够快速的挑选出合适自己妆容的口红色号,今..._获取口红品牌 及色号,色值api

linux awk命令NR详解,linux awk命令详解-程序员宅基地

文章浏览阅读3.6k次。简介awk命令的名称是取自三位创始人Alfred Aho 、Peter Weinberger 和 Brian Kernighan姓名的首字母,awk有自己的程序设计语言,设计简短的程序,读入文件,数据排序,处理数据,生成报表等功能。awk 通常用于文本处理和报表生成,最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。awk 通常以文件的一行为处理单位..._linux awk nr

android 网络连接失败!failed to connect to /192.168.1.186(port 8080)_failed to connect to 192.168.88.218:80-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏2次。在网上找了一个小时,一直没有头绪,因为上个星期还是好好的,最后看到一个大神的解答,只需要将防火墙关闭就好了.原本向测试功能的,却卡在了登录上.以此记录.另外好像还有种错误是电脑与手机连接的WiFi不同,也可以看看...._failed to connect to 192.168.88.218:80

matlab 多径衰落,利用MATLAB仿真多径衰落信道.doc-程序员宅基地

文章浏览阅读1.9k次。利用MATLAB仿真多种多径衰落信道摘要:移动信道的多径传播引起的瑞利衰落,时延扩展以及伴随接收过程的多普勒频移使接受信号受到严重的衰落,阴影效应会是接受的的信号过弱而造成通信的中断:在信道中存在噪声和干扰,也会是接收信号失真而造成误码,所以通过仿真找到衰落的原因并采取一些信号处理技术来改善信号接收质量显得很重要,这里利用MATLAB对多径衰落信道的波形做一比较。一,多径衰落信道的特点关于多径衰落..._matlab多径衰落工具箱

python对json的操作及实例解析_import json灰色-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏17次。Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。(来自百度百科)python关于json文_import json灰色

mysql实现MHA高可用详细步骤_mysql mha超详细教程-程序员宅基地

文章浏览阅读1.1k次,点赞6次,收藏3次。一、工作原理MHA工作原理总结为以下几条:(1) 从宕机崩溃的 master 保存二进制日志事件(binlog events);(2) 识别含有最新更新的 slave ;(3) 应用差异的中继日志(relay log) 到其他 slave ;(4) 应用从 master 保存的二进制日志事件(binlog events);(5) 通过Manager控制器提升一个 slave 为新 m..._mysql mha超详细教程

随便推点

Linux环境下主从搭建心得(高手勿喷)_linux的java主从策略是什么-程序员宅基地

文章浏览阅读194次。一 java环境安装:1 安装JDK 参考链接地址:https://blog.csdn.net/qq_42815754/article/details/82968464注:有网情况下直接 yum 一键安装:yum -y list java(1)首先执行以下命令查看可安装的jdk版本(2)选择自己需要的jdk版本进行安装,比如这里安装1.8,执行以下命令:yum install -y java-1.8.0-openjdk-devel.x86_64(3)安装完之后,查看安装的jdk 版本,输入以下指令_linux的java主从策略是什么

ACM第四题_acm竞赛题 i 'm from mars-程序员宅基地

文章浏览阅读104次。定义int 类型,由while实现A,B的连续输入,输出A+B的值按Ctrl Z结束循环。#include<iostream>using namespace std;int main(){ int A,B; while(cin>>A>>B) { cout<<A+B<&_acm竞赛题 i 'm from mars

TextView.SetLinkMovementMethod后拦截所有点击事件的原因以及解决方法-程序员宅基地

文章浏览阅读5.2k次。在需要给TextView的某句话添加点击事件的时候,我们一般会使用ClickableSpan来进行富文本编辑。与此同时我们还需要配合 textView.setMovementMethod(LinkMovementMethod.getInstance());方法才能使点击处理生效。但与此同时还会有一个问题:如果我们给父布局添加一个点击事件,需要在点击非链接的时候触发(例如RectclerV..._linkmovementmethod

JAVA实现压缩解压文件_java 解压zip-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏31次。JAVA实现压缩解压文件_java 解压zip

JDK8 新特性-Map对key和value分别排序实现_java comparingbykey-程序员宅基地

文章浏览阅读1.3w次,点赞7次,收藏21次。在Java 8 中使用Stream 例子对一个 Map 进行按照keys或者values排序.1. 快速入门 在java 8中按照此步骤对map进行排序.将 Map 转换为 Stream 对其进行排序 Collect and return a new LinkedHashMap (保持顺序)Map result = map.entrySet().stream() .sort..._java comparingbykey

GDKOI2021普及Day1总结-程序员宅基地

文章浏览阅读497次。第一次参加GDKOI,考完感觉还可以,结果发现还是不行,有一些地方细节打错,有些失分严重,总结出以下几点:1.大模拟一定要注意,细节打挂就是没分,像T1就是一道大模拟题,马上切了,后面就没想着检查以下,导致有些地方挂掉了,用民间数据一测,才85分。2.十年OI一场空,不开longlonglong longlonglong见祖宗。今天的T2本来想用暴力水点分的,结果没想到longlong→intlong long\to intlonglong→int,40→040\to040→0。3.代码实现能力太差,_gdkoi

推荐文章

热门文章

相关标签