ubuntu12.04 安装最新的docker

安装Docker(在Ubuntu中)
Docker支持下面的这些Ubuntu操作系统:

Ubuntu Xenial 16.04 (LTS)
Ubuntu Wily 15.10
Ubuntu Trusty 14.04 (LTS)
Ubuntu Precise 12.04 (LTS)
该页指导你使用Docker管理发行包和安装机制来安装Docker。使用这些包能够确保你获得最新的Docker发行版。

要求

不管你的Ubuntu版本是什么,Docker要求64位系统安装。除此之外,你的内核最低版本要求为3.10。版本低于3.10的内核缺少一些运行Docker容器的特征。这些较老版本的内核被了解到,存在一些bug,这些bug将会导致数据丢失。

你可以打开一个终端,使用uname -r来检查你的当前内核版本。

root@ubuntu:/home/hy003# uname -rroot@ubuntu:/home/hy003# uname -r
3.13.0-32-generic
1
2
更新你的apt源

Docker的APT库包含Docker 1.7.1和更高版本。为了设置APT从最新的库中使用包:

使用sudo或root权限,作为一个用户登陆你的机器
打开一个终端窗口
更新包信息,确定APT以https方法工作,并且CA证书已被安装。
 $ sudo apt-get update
 $ sudo apt-get install apt-transport-https ca-certificates
1
2
添加新的GPG键
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
修改权限:root@ubuntu:/home/hy003# sudo chmod 777 /etc/apt/sources.list.d/docker.list
vim/etc/apt/sources.list.d/docker.list打开文件。
移除所有存在的条目。
使用 lsb_release 命令也可以查看 Ubuntu 的版本号


为你的Ubuntu操作系统添加一个条目。 
可能的条目为:

在Ubuntu Precise 12.04 (LTS)中

deb https://apt.dockerproject.org/repo ubuntu-precise main
1
在Ubuntu Trusty 14.04 (LTS)中

deb https://apt.dockerproject.org/repo ubuntu-trusty main
1
在Ubuntu Wily 15.10中

deb https://apt.dockerproject.org/repo ubuntu-wily main
1
在Ubuntu Xenial 16.04(LTS)

deb https://apt.dockerproject.org/repo ubuntu-xenial main
1
保存和关闭/etc/apt/sources.list.d/docker.list文件。

更新APT包索引。
$ sudo apt-get update
1
如果旧的repo存在则清除
$ sudo apt-get purge lxc-docker
1
验证APT是否是从正确的库中拉取下来的。
$ apt-cache policy docker-engine
1
运行sudo apt-get upgrade,此时APT会从最新的库中拉取出来。

Ubuntu版本的条件

Ubuntu Xenial 16.04 (LTS)
Ubuntu Wily 15.10
Ubuntu Trusty 14.04 (LTS)
对于Ubuntu Trusty,Wily和Xenial来说,我们推荐您安装linux-image-extra内核包。linux-image-extra包允许你使用aufs存储驱动。

为了给您的内核版本安装linux-image-extra包:

在你的Ubuntu系统中打开一个终端。
更新你的包管理器。
$ sudo apt-get update
1
安装推荐的包
$ sudo apt-get install linux-image-extra-$(uname -r)
1
继续安装Docker
如果你正在Ubuntu 14.04或12.04中安装,apparmor是需要的。使用下列命令安装:

$ sudo apt-get install apparmor

Ubuntu Precise 12.04 (LTS)

对于Ubuntu Precise来说,Docker需要3.13的内核版本。如果你的内核版本必3.13低,你必须更新它。查看这个表格来看对于你的环境需要哪些包。

为了更新你的内核和安装额外的包,做下列操作:

打开一个终端。
更新包管理器
$ sudo apt-get update
1
必须的和可选的包都要安装
$ sudo apt-get install linux-image-generic-lts-trusty
1
依赖于你的环境,你可能需要安装更多,正如在上述表格中描述的。

重启你的宿主机。sudo reboot
在系统重启之后,继续安装Docker。
安装

确定你已经安装了你Ubuntu版本的必要条件。然后,使用下面的命令安装Docker:

使用sudo特权作为一个用户登陆你的Ubuntu。
更新你的APT包索引。
$ sudo apt-get update
1
安装Docker。
$ sudo apt-get install docker-engine
1
开启docker域
$ sudo service docker start
1
验证docker被正确安装
$ sudo docker run hello-world
1
该命令会向容器中下载一个测试镜像并且运行它。当容器运行成功,就会打印一个信息,然后退出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
可选配置

该小节包含可选的过程,用于配置你的Ubuntu更好的运行Docker。

创建docker组
适应内存和交换
配置一个DNS服务器来用
配置Docker开机自启
创建一个Docker组

docker域是和Unix的一个套接字绑定的,而不是一个TCP端口。默认情况下,Unix套接字是属于用户root的,并且其他用户能够使用sudo访问他。处于这个原因,docker域会一直以root用户运行。

为了避免在使用docker命令的时候必须要使用sudo,我们需要创建一个Unix组称作docker,并且向该组中添加用户。当docker域启动的时候,Unix套接字的读写所有权由docker组拥有。

警告:`docker`组和`root`用户是平等的。
1
2
为了创建docker组和添加你的用户:

使用sudo权限登陆Ubuntu。
创建docker组
$ sudo groupadd docker
1
向docker组中添加你的用户
$ sudo usermod -aG docker ubuntu
1
登出再登入 
这个确保你的用户以正确的权限运行。
不使用sudo运行docker来验证您的工作。
$ docker run hello-world
1
如果失败信息和下面类似:

Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
1
检查DOCKER_HOST环境变量是否被设置,如果为设置,则重新设置。

调整内存和交换分区

当用户运行Docker的时候,当运行一个镜像的时候,他们可能会看到下面这些信息:

WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded.
1
2
为了阻止这些信息,就需要使能你系统上的内存和交换分区(memory and swap accounting)。使能内存和交换分区能够引起内存开销和降解性能,即使Docker并没有在使用。内存开销大约是所有可用内存的1%。性能大约降解10%。

为了在使用GNU GRUB的系统上使能内存和交换分区,遵循下面的步骤:

作为一个用户使用sudo特权来登陆Ubuntu。
编辑/etc/default/grub文件。
像下面这样设置GRUB_CMDLINE_LINUX值。
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
1
保存并关闭文件
更新GRUB
$ sudo update-grub
1
重启系统
配置一个DNS服务器让Docker使用

在桌面上运行Ubuntu系统或Ubuntu衍生系统,在/etc/resolv.conf文件中,典型的使用127.0.0.1作为默认的nameserver。网络管理器也会设置dnsmasq来使用真实的DNS服务器,并且在/etc/resolv.conf中设置nameserver 127.0.0.1。

当使用这些配置在桌面机器上开启容器,Docker用户将会看到这个警告:

WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers
can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
1
2
该警告的出现是因为Docker容器不能使用本地的DNS域名服务器。Docker默认使用一个外部的域名服务器。

为了避免这个警告,你可以指定一个DNS服务器让Docker容器来使用。或者是,你可以在网络管理器中禁用dnsmasq。不过,禁用dnsmasq可能会导致DNS在一些网络中变慢。

下面的指令描述了如何配置运行在Ubuntu14.10或较低版本的上的Docker域。Ubuntu 15.04和更高版本使用systemd作为启动和服务管理器。有关与systemd的配置可以参考这篇文章,control and configure Docker with systemd。

为了指定一个DNS服务器让Docker使用:

作为一个用户身份以sudo方式登陆系统。
打开/etc/default/docker文件编辑。
添加一个设置。
DOCKER_OPTS="--dns 8.8.8.8"
1
使用本地DNS服务器,例如 192.168.1.1替换8.8.8.8。你也可以指定多个DNS服务器。将他们之间用空格分离。例如:

--dns 8.8.8.8 --dns 192.168.1.1
1
警告:如果你正在使用连接多个网络的电脑做这个事情,确定要选择一个公共DNS服务器。
1
2
保存并关闭文件
重启Docker域。
$ sudo restart docker
1
或者是,对之前的操作作为一个可选的选项,就是在网络管理器中禁用dnsmasq。

打开/etc/NetworkManager/NetworkManager.conf文件。
注释掉dns=dnsmasq这一行。
保存并且关闭文件。
重启网络管理器和Docker.
$ sudo restart network-manager
$ sudo restart docker
1
2
配置Docker开机自启动

Ubuntu 15.04及以上系统使用systemd作为它的启动和服务管理器,Ubuntu 14.10及其低版本使用upstart。

对于15.04及其以上版本来说,为了配置docker域开机自启,运行:

$ sudo systemctl enable docker
1
对于14.10及其较低版本,上述的安装方法自动配置upstart开使docker域开机的时候自动启动。

更新Docker
安装最新版本的Docker使用apt-get:

$ sudo apt-get upgrade docker-engine
1
卸载
卸载Docker包:

$ sudo apt-get purge docker-engine
1
卸载Docker包及其以来不再需要使用下面的命令:

$ sudo apt-get autoremove --purge docker-engine
1
上面的命令不会移除镜像,容器,卷或者是用户创建的配置文件。如果你想删除所有的镜像,容器和卷,运行下面的命令:

$ rm -rf /var/lib/docker
1
你必须手动删除用户创建的配置文件。
————————————————
版权声明:本文为CSDN博主「lvpchen1」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/clp786080772/article/details/78339207

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值