容器技术之二.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


目录
相关文章
|
18天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
161 77
|
7天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
115 64
|
4天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
41 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
10天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
31 3
实战~如何组织一个多容器项目docker-compose
|
9天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
70 24
|
10天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
62 24
|
8天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
112 11
|
4天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
20 4
|
26天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
19天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
63 3