zl程序教程

您现在的位置是:首页 >  工具

当前栏目

《第一本Docker书(修订版)》——2.2 在Ubuntu和Debian中安装Docker

Docker安装Ubuntu 2.2 Debian 修订版
2023-09-11 14:17:35 时间

本节书摘来自异步社区《第一本Docker书(修订版)》一书中的第2章,第2.2节,作者:【澳】James Turnbull(詹姆斯•特恩布尔)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 在Ubuntu和Debian中安装Docker

目前,官方支持在以下版本的Ubuntu和Debian中安装Docker:

Ubuntu Wily 15.10(64位);
Ubuntu Vivid 15.04(64位);
Ubuntu Trusty 14.04(LTS)(64位);
Ubuntu Precise 12.04(LTS)(64位);
Ubuntu Raring 13.04(64位);
Ubuntu Saucy 13.10(64位);
Debian 8.0 Jessie(64位);
Debian 7.7 Wheezy(64位)。
注意
这并不意味着上面清单之外的Ubuntu(或Debian)版本就不能安装Docker。只要有适当的内核和Docker所必需的支持,其他版本的Ubuntu也是可以安装Docker的,只不过这些版本并没有得到官方支持,因此,遇到的bug可能无法得到官方的修复。
安装之前,还要先确认一下已经安装了Docker所需的前提条件。我创建了一个要安装Docker的全新Ubuntu 14.04 LTS 64位宿主机,称之为darknight.example.com。
2.2.1 检查前提条件
在Ubuntu宿主机中安装并运行Docker所需的前提条件并不多,下面一一列出。

1.内核
首先,确认已经安装了能满足要求的Linux内核。可以通过uname命令来检查内核版本信息,如代码清单2-1所示。

代码清单2-1 检查Ubuntu内核的版本

$ uname -a

Linux darknight.example.com 3.13.0-43-generic #72-Ubuntu SMP Mon Dec

8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

可以看到,这里安装的是3.13.0 x86_64版本的内核。这是Ubuntu 14.04及更高版本默认的内核。

如果使用Ubuntu较早的发行版,可以有一个较早的内核。应该可以轻松地用apt-get把Ubuntu升级到最新的内核,如代码清单2-2所示。

代码清单2-2 在Ubuntu Precise中安装3.13内核

$ sudo apt-get update

$ sudo apt-get install linux-headers-3.13.0-43-generic

 linux-image-3.13.0-43-generic linux-headers-3.13.0-43

注意
本书中的所有操作都使用sudo来获取所需的root权限。
然后,就可以更新Grub启动加载器来加载新内核,如代码清单2-3所示。

代码清单2-3 更新Ubuntu Precise的启动加载器

$ sudo update-grub
安装完成后需要重启宿主机来启用新的3.8内核或者更新的内核,如代码清单2-4所示。

代码清单2-4 重启Ubuntu宿主机

$ sudo reboot
重启之后,可以再次使用uname –a来确认已经运行了正确版本的内核。

2.检查Device Mapper
这里将使用Device Mapper作为存储驱动。自2.6.9版本的Linux内核开始已经集成了Device Mapper,并且提供了一个将块设备映射到高级虚拟设备的方法。Device Mapper支持“自动精简配置”[18](thin-provisioning)的概念,可以在一种文件系统中存储多台虚拟设备(Docker镜像中的层)。因此,用Device Mapper作为Docker的存储驱动是再合适不过了。

任何Ubuntu 12.04或更高版本的宿主机应该都已经安装了Device Mapper,可以通过代码清单2-5所示的命令来确认是否已经安装。

代码清单2-5 检查Device Mapper

$ ls -l /sys/class/misc/device-mapper

lrwxrwxrwx 1 root root 0 Oct 5 18:50 /sys/class/misc/device-mapper

 - ../../devices/virtual/misc/device-mapper

也可以在/proc/devices文件中检查是否有device-mapper条目,如代码清单2-6所示。

代码清单2-6 在Ubuntu的proc中检查Device Mapper

$ sudo grep device-mapper /proc/devices
如果没有出现device-mapper的相关信息,也可以尝试加载dm_mod模块,如代码清单2-7所示。

代码清单2-7 加载Device Mapper模块

$ sudo modprobe dm_mod
cgroup和命名空间自2.6版本开始已经集成在Linux内核中了。2.6.38以后的内核对cgroup和命名空间都提供了良好的支持,基本上也没有什么bug。

2.2.2 安装Docker
现在“万事俱备,只欠东风”。我们将使用Docker团队提供的DEB软件包来安装Docker。

首先,要添加Docker的APT仓库,如代码清单2-8所示。其间,可能会提示我们确认添加仓库并自动将仓库的GPG公钥添加到宿主机中。

代码清单2-8 添加Docker的ATP仓库

$ sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu- 

 trusty main /etc/apt/sources.list.d/docker.list"

应该将trusty替换为主机的Ubuntu发行版本。这可以通过运行lsb_release命令来实现,如代码清单2-9所示。

代码清单2-9 查主机Ubuntu发行版本

$ sudo lsb_release --codename | cut -f2

trusty

接下来,要添加Docker仓库的GPG密钥,如代码清单2-10所示。

代码清单2-10 添加Docker仓库的GPG密钥

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net

:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

之后,需要更新APT源,如代码清单2-11所示。

代码清单2-11 更新APT源

$ sudo apt-get update
现在,就可以安装Docker软件包了,如代码清单2-12所示。

代码清单2-12 在Ubuntu中安装Docker

$ sudo apt-get install docker-engine
执行该命令后,系统会安装Docker软件包以及一些必需的软件包。

提示
自Docker 1.8.0开始,Docker的软件包名称已经从lxc-docker变为docker-engine。
安装完毕,用docker info命令应该能够确认Docker是否已经正常安装并运行了,如代码清单2-13所示。

代码清单2-13 确认Docker已经安装在Ubuntu中

$ sudo docker info

Containers: 0

Images: 0

. . .

2.2.3 Docker与UFW
在Ubuntu中,如果使用UFW[19],即Uncomplicated Firewall,那么还需对其做一点儿改动才能让Docker工作。Docker使用一个网桥来管理容器中的网络。默认情况下,UFW会丢弃所有转发的数据包(也称分组)。因此,需要在UFW中启用数据包的转发,这样才能让Docker正常运行。我们只需要对/etc/default/ufw文件做一些改动即可。我们需要将这个文件中代码清单2-14所示的代码替换为代码清单2-15所示的代码。

代码清单2-14 原始的UFW转发策略

DEFAULT_FORWARD_POLICY="DROP"
代码清单2-15 新的UFW转发策略

DEFAULT_FORWARD_POLICY="ACCEPT"
保存修改内容并重新加载UFW即可,如代码清单2-16所示。

代码清单2-16 重新加载UFW防火墙

$ sudo ufw reload


基于Ubuntu操作系统下的Docker 环境部署 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 100 MB),但事实的真相是,我们选择基础镜像并不是为了体验一下Python语法而已,在此基础上,我们需要调试和安装各种扩展,可能会安装很多三方依赖,甚至预设更多服务,在这种环境下,Alpine就并非是一个很好的选择了,本次我们就来分别在Alpine和Ubuntu上来体验一下安装和编译Python的区别。
【云原生】ubuntu下Docker安装及加速 在上一篇[【云原生】Docker介绍]中已经对docker相关概念进行了介绍,今天将在ubuntu下进行docker安装,以及配置镜像加速。
Ubuntu上使用docker安装mysql Ubuntu上使用docker安装mysql1.docker仓库搜索mysql docker search mysql /images/img/20220308164142.png 2.docker仓库拉取mysql8.0镜像 docker pull mysql:8.0 docker pull mysql #拉取最新版本的mysql 3.查看本地镜像是否安装成功 docker images mysql:8.0 /images/img/20220308164232.png 4.安装运行mysql8.0容器 docker run -p 3307:3306 --name mysql -e MYSQL
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。