容器技术之二.Docker的安装和常见问题

简介: 容器技术之二.Docker的安装和常见问题

Docker的安装要求

Docker支持在多种平台上使用,包括Mac、Windows、Cloud以及Linux系统上等。由于Docker是基于Ubuntu发布的,所以官方更推荐在Ubuntu上使用Docker,开发者也可以根据自己的实际开发环境选择合适的开发平台。

Docker的安装并非想象中那么随意,在不同的平台上安装Docker必须满足不同的先决条件。由于本书选择在Ubuntu16.04版本上使用Docker,因此这里只针对Ubuntu系统上的Docker安装要求进行说明。

根据Docker官网上的安装说明,想要在Ubuntu上安装Docker需要满足两点要求,一是Ubuntu的版本支持,二是Ubuntu的内核支持,具体如下。

  1. Ubuntu的版本支持
    ● Ubuntu Trusty 14.04 (LTS)
    ● Ubuntu Xenial 16.04 (LTS)
    ● Ubuntu Zesty 17.04
    ● 其他更高的版本
    2.Ubuntu的内核支持
    Docker需要在64位版本的Ubuntu上安装。此外,还需要保证Ubuntu的内核版本不低于3.10(可以通过uname -r命令查看),其中3.10版本和更新维护版也是可以使用的,在低于3.10版本的内核上运行Docker会丢失一部分功能。
    小提示:
    上述版本和内核要求是对Docker全面支持的,也有一些开发者的版本或者系统无法满足条件,可以参考网上一些方法进行额外配置,达到满足Docker使用的需求,当然这种方法是不推荐的。
    在线安装
    由于在线安装方式比较容易,且后期升级维护相对方便,所以对于大多数开发者而言,通常会选择在线安装Docker。这种安装方式需要先设置一个Docker仓库,然后通过该仓库进行安装和后续更新。
    在线安装方式的具体实现步骤如下。
    1.设置Docker仓库
    在新的主机上初次安装Docker CE之前,必须先设置Docker存储库,其步骤如下。
    (1)更新apt的索引包
    $ sudo apt-get update
    需要注意的是,在执行apt更新完成后,终端可能会返回如“Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi’”的子流程错误信息,这个错误是在Ubuntu16.04系统下更新apt时内部出现的问题,并不影响后续Docker的安装和使用,所以这个问题可以直接忽略。
    (2)安装软件包允许apt通过HTTPS方式使用Docker仓库
    $ sudo apt-get install
    apt-transport-https
    ca-certificates
    curl
    software-properties-common
    (3)添加Docker官网的GPG key
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    (4)添加Docker稳定的仓库源(根据Ubuntu镜像版本的不同进行选择安装)
    amd64:
    $ sudo add-apt-repository
    “deb [arch=amd64] https://download.docker.com/linux/ubuntu
    $(lsb_release -cs)
    stable”
    armhf:
    $ sudo add-apt-repository
    “deb [arch=armhf] https://download.docker.com/linux/ubuntu
    $(lsb_release -cs)
    stable”
    s390x:
    $ sudo add-apt-repository
    “deb [arch=s390x] https://download.docker.com/linux/ubuntu
    $(lsb_release -cs)
    stable”
    2.安装Docker CE
    设置好Docker仓库之后,就可以从存储库中安装和更新Docker,其实现步骤如下。
    (1)更新apt的索引包
    $ sudo apt-get update
    (2)安装不同版本的Docker
    在安装Docker时,通常会根据个人情况选择安装不同的版本。为此,Docker提供了两种安装方式,一是安装默认的最新版本的Docker,二是安装指定版本的Docker,具体如下。
    ● 安装最新版本的Docker,具体指令如下。
    $ sudo apt-get install docker-ce
    需要注意的是,执行上述指令后,之前存在的任何版本的Docker都会被替换。
    ● 安装指定版本的Docker,具体指令如下。
    $ sudo apt-get install docker-ce=
    从上述指令可以看出,安装指定版本的Docker时,需要通过“=”将版本字符串附加到安装包后。
    为了更好的选择指定版本的Docker,可以使用apt-cache madison指令查看Docker仓库中的Docker版本信息,具体指令如下。
    $ apt-cache madison docker-ce
    执行上述指令后,就会显示出当前Docker仓库提供的在线的Docker的版本信息,具体效果如图1所示。
    图1 Docker版本信息
    图1列表中的内容依赖于启用的存储库,其中第二列是版本字符串,第三列是存储库名称,用于指示安装包来自哪个存储库。
    (3)安装完成后,可以使用sudo docker run hello-world指令运行测试,具体指令如下。
    $ sudo docker run hello-world
    执行完上述指令后,Docker主机终端显示的结果信息如图2所示。
    离线安装
    在没有网络或者网络条件较差的情况下,我们可以选择离线安装Docker(使用DEB格式的安装文件)。这种安装方式的好处是不依赖于网络,但其缺点是后期使用时需要手动升级和维护,并且每次升级时都需要下载一个新的.deb文件。
    离线安装方式的具体实现步骤如下。
  2. 下载离线安装文件
    通过官方提供的地址https://download.docker.com/linux/ubuntu/dists/,下载安装Docker的.deb文件,访问该地址后的效果如图1所示。
    图1 Docker离线安装文件地址
    在图1中,需要选择自己机器所对应的Ubuntu版本。由于本书使用的是Ubuntu Xenial 16.04 (LTS)版本,所以要单击图中的xenial链接并进入到pool/stable/目录下,然后根据情况选择amd64、armhf或者s390x版本的.deb文件,如图2所示。
    图2 Docker离线安装文件下载目录
  3. 使用离线文件安装Docker
    通过下载的.deb文件进行Docker离线安装非常简单,只需要在Ubuntu系统的终端中执行如下指令。
    $ sudo dpkg -i /path/to/package.deb
    需要注意的是,使用sudo dpkg –i指令安装Docker时,一定要指定读者下载的.deb文件所在地址,例如上面指令表示执行/path/to/路径下的package.deb文件。
    脚本文件安装
    在开发和测试环境下,我们还可以使用Docker官方提供的自动化脚本文件来安装Docker,其中开发环境和测试环境下的脚本文件下载地址分别为https://get.docker.com/https://test.docker.com/
    需要注意的是,这种安装方式是针对某些特定环境提供的,虽然使用此种方式可以快速的在非交互式的开发环境中安装稳定开发版本和测试版本的Docker CE,但是在实际环境下不推荐使用脚本文件来安装Docker,所以这里对于脚本文件的Docker安装就不做具体介绍了,有兴趣的读者可以查看官网介绍,具体参考地址为https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-using-the-convenience-script
    Docker的开机启动和添加当前用户可执行权限
    在Docker安装完成后,开发者可以根据实际需求进行其他一些相关设置,例如Docker开机启动、当前用户可执行Docker等,具体设置方式如下。
    (1)配置Docker开机启动
    $ sudo systemctl enable docker
    (2)配置当前用户执行Docker权限(username是自己的用户名)
    $ sudo usermod -aG docker username
    完成上述配置后,需要重启Ubuntu系统来查看效果。
    安装时的问题及解决方法
    通常情况下,严格按照前面几个小节的安装要求和方式进行Docker的安装,基本就可以正常完成Docker的安装,但在某些特殊情况下,安装过程可能会出现一些问题或者错误,本小节将对容易出现的几个问题给出解决方法。
  4. Docker安装连接中断
    Docker的在线安装方式需要连接外网,所以对网速有一定的要求。在某些限网环境或者用网密集的情况下,很容易出现网速过慢、中断连接的情况,如图1所示。
    图1 Docker安装连接中断
    从图1可以看出,在安装时出现了网络连接速度过慢导致了下载安装失败的问题。
    针对这种网速过慢的情况,建议开发者在网络畅通的情况下重新下载安装,或者使用他人提供的.deb文件进行离线安装,当然也可以通过国内其他平台提供的Docker源进行下载安装。
  5. Docker更新资源失败
    Docker执行更新apt索引包并进行安装的过程中,可能会显示无法获取锁等异常情况,如图2所示。
    图2 Docker更新资源失败
    出现图2中问题的原因可能是由于另外一个程序(上次运行安装或更新没有正常完成)正在使用该程序,从而导致资源被锁不可用。
    这种问题解决的办法其实很简单,只需要在系统终端执行以下两条指令即可。
    $ sudo rm /var/cache/apt/archives/lock
    $ sudo rm /var/lib/dpkg/lock


目录
相关文章
|
8天前
|
Linux 虚拟化 Docker
Windows12安装Docker
Windows12安装Docker
38 2
|
2天前
|
运维 Linux 虚拟化
Docker详解(三)——Docker安装与部署
Docker详解(三)——Docker安装与部署
33 4
|
3天前
|
运维 Kubernetes Docker
这是一项颠覆性技术 - 容器
这是一项颠覆性技术 - 容器
|
3天前
|
存储 Kubernetes Docker
Kubernetes(K8S)集群管理Docker容器(概念篇)
Kubernetes(K8S)集群管理Docker容器(概念篇)
|
3天前
|
弹性计算 测试技术 持续交付
Docker技术这些应用场景,你知道吗?
Docker技术这些应用场景,你知道吗?
|
3天前
|
存储 Ubuntu 安全
Docker容器常用命令
Docker容器常用命令
13 1
|
4天前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
7 0
|
5天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(7)Ubuntu20.04 arm64安装Docker
Linux(7)Ubuntu20.04 arm64安装Docker
20 0
|
5天前
|
存储 Ubuntu Docker
如何在 Ubuntu 上安装 Docker?
【4月更文挑战第17天】
43 8
如何在 Ubuntu 上安装 Docker?
|
6天前
|
Java 持续交付 Maven
云效产品使用常见问题之流水线的容器读取本地的挂载文件失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。