Ubuntu是一个以桌面应用为主的Linux操作系统,基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。
而Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
那么我们如何将Docker安装在Ubuntu上呢?笔者安装的是Linux的ubuntu的18.04.4版本,64位,并且对Docker下载的过程进行记录。在安装时,笔者根据Docker的文档进行一步一步安装,并且在安装过程中遇到一些问题。大部分问题是由于笔者误打或者少打了一位字符导致的命令出错,重新输入即可继续进行安装。并且在安装过程中,当长时间未跳转的情况发生时,笔者最初认为是网络的问题,在等待一段时间过后,就可以继续安装了。并且笔者发现在文档中出现的
一. 选择版本
Docker有两个版本,一是社区版,二是专业版。我在这里选择的是社区版。
二. 进入下载官网
https://docs.docker.com/engine/install/ubuntu/
可以从官网上看到,Docker可以支持以下三种系统:
Ubuntu Eoan 19.10
Ubuntu Bionic 18.04 (LTS)
Ubuntu Xenial 16.04 (LTS)
那么笔者的系统是符合系统条件的。继续来看Docker引擎支持的架构, x86_64 (or amd64), armhf, arm64, s390x (IBM Z), and ppc64le (IBM Power),这些都是Docker引擎所能支持的。用户可以根据自己的操作系统与架构来选择合适的Docker版本进行安装。
三. 卸载旧版本Docker
在Docker的文档安装中,提示了安装新版本Docker需要先将旧版本Docker卸载,如果之前未安装Docker,也可以输入以下命令。
$ sudo apt-get remove docker docker-engine docker.io containerd runc
四. 安装
首先使用apt命令进行更新新版本软件源,再进行访问基本组件。
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
更新过后会出现如下界面:
接下来我们进行安装,并且输入命令访问组件。
如果出现无法定位软件包的情况,应该是命令打错了,检查一下命令修正即可。
在提示选择继续执行时,输入Y,则继续进行下载。接下来就会自动进行下载和安装。
然后,我们输入Docker的GPG官方秘钥。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
显示OK,则进行下一步操作。若未显示OK,请检查输入命令是否正确。
接下来,通过命令去检测是否与官方给出的密钥一致。
经过笔者检测,可以发现这两串密钥是一致的,那么进行下一步操作。
安装stable repository,这里要注意三点:架构,系统版本,使用版本。使用 lsb_release -cs可查看系统,在添加软件源后,会自动更新软件源。
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
因为上一步中,软件源会自动更新。所以可以不输入第一行的命令。选择Y继续执行下载。
笔者在安装时停在了如下界面,可能是下载速度比较慢的关系,卡顿持续了5分钟左右下载完毕,耐心等待即可。
当笔者进行到这一步时,遇到了一些问题。
经过笔者的搜索与检查,终于找到问题所在。原因是没有32位的运行库 ia32-libs 。因此输入以下命令,直接进行安装。
apt-get install ia32-libs
apt-get -f install
但接下来,笔者又遇到一些问题。
遇到这种问题,笔者进行搜索,并且找到了一种切实可行的解决方案,就是把<>改成单引号。
选择Yes进行继续下载,接下来是一段漫长的等待时间。
那么接下来就是测试阶段。
安装docker之后,测试hello-world镜像,终端卡在Unable to find image ‘hello-world:latest’ locally位置
这时,我们寻找了很多种的方式进行解决。
最终修改/etc/docker/daemon.json这个文件
并且存储{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]
}
再进行
systemctl daemon-reload
systemctl restart docker
藉此,我们再运行Hello World命令进行测试。
可以看到,测试成功,安装正常。那么在使用docker时不能一直输入sudo的超级管理员权限,不然输入起来会比较麻烦。但是不输入sudo又如何保证docker的运行呢?
首先创建一个docker的用户组。
$ sudo groupadd docker
那么我们重新开一个终端,重新运行hello world。我们可以看到还是不能运行,那么我们输入命令:
$ newgrp docker
再次进行运行,我们可以发现不用sudo也可以运行docker了。
接下来我们配置一下docker的开机自动启动设置。
输入命令
$ sudo systemctl enable docker
在此我们检查一下运行情况,使用以下命令,发现是active也就是运行状态的。
$ sudo systemctl status docker
那么在Ubuntu上安装Docker的任务也就完成了。