全国咨询/投诉热线:400-618-9090

首页技术文章正文

Linux系统如何安装Docker?

更新时间:2020-10-13 来源:黑马程序员 浏览量:

在Linux系统上安装Docker有3种方式,分别为在线安装、离线安装以及脚本文件安装,其中最常用也是官方推荐的安装方式就是在线安装。接下来将在 Ubuntu16.04系统上分别针对这3种安装方式进行详细讲解。

一、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仓库提供的在线的Docker的版本信息,具体效果下图所示。


Docker测试效果图

图中列表中的内容依赖于启用的存储库,其中第二列是版本字符串,第三列是存储库名称,用于指示安装包来自哪个存储库。

(3)安装完成后,可以使用sudo docker run hello-world指令运行测试,具体指令如下。

$ sudo docker run hello-world

二、Docker离线安装教程

在没有网络或者网络条件较差的情况下,我们可以选择离线安装Docker(使用DEB格式的安装文件)。这种安装方式的好处是不依赖于网络,但其缺点是后期使用时需要手动升级和维护,并且每次升级时都需要下载一个新的.deb文件。

1.下载离线安装文件

通过官方提供的地址 https://download.docker.com/linux/ubuntu/dists/,下载安装 Docker的.deb文件,访问该地址后的效果如下图所示。

Docker的离线安装文件地址
Docker的离线安装文件地址

上图中,需要选择自己机器所对应的Ubuntu版本。由于本书使用的是Ubuntu Xenial 16.04 (LTS)版本,所以要单击图中的 xenial 链接并进入到 pool/stable/目录下,然后根据情况选择amd64、armhf或者s390x版本的.deb文件,如下图所示。

Docker的离线安装文件下载目录

Docker的离线安装文件下载目录

2.使用离线文件安装Docker

通过下载的.deb文件进行Docker离线安装非常简单,只需要在Ubuntu系统的终端中执行如下指令。

$ sudo dpkg -i /path/to/package.deb

需要注意的是,使用sudo dpkg –i指令安装Docker时,一定要指定读者下载的.deb文件所在地址,例如上面指令表示执行/path/to/路径下的package.deb文件。

三、Docker脚本文件安装

在开发和测试环境下,我们还可以使用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的安装,基本就可以正常完成Docker的安装,但在某些特殊情况下,安装过程可能会出现一些问题或者错误,本小节将对容易出现的几个问题给出解决方法。

1.Docker安装连接中断

Docker 的在线安装方式需要连接外网,所以对网速有一定的要求。在某些限网环境或者用网密集的情况下,很容易出现网速过慢、中断连接的情况,如下图所示:

Docker安装连接中断

Docker安装连接中断

从上图看出,在安装时出现了网络连接速度过慢导致了下载安装失败的问题。

针对这种网速过慢的情况,建议开发者在网络畅通的情况下重新下载安装,或者使用他人提供的.deb文件进行离线安装,当然也可以通过国内其他平台提供的Docker源进行下载安装。

2.Docker更新资源失败

Docker执行更新apt索引包并进行安装的过程中,可能会显示无法获取锁等异常情况,如下图所示。

Docker更新资源失败

上图中问题的原因可能是由于另外一个程序(上次运行安装或更新没有正常完成)正在使用该程序,从而导致资源被锁不可用。

这种问题解决的办法其实很简单,只需要在系统终端执行以下两条指令即可。


猜你喜欢:

Docker的底层技术介绍

Docker的具体架构介绍

DDocker教程:企业级应用容器化实践之容器镜像仓库

传智播客java培训课程

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

pythonAI

在线咨询 我要报名