欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu下安装docker方法详解

程序员文章站 2022-05-20 22:13:45
...

从19年开始,在华为的一次面试中第一次听到docker,后来因为找工作和入职开发任务繁忙没有太多的去研究这一块,直到最近我们公司的软件供应商交付的产品是用docker作为承载来开发,这一次必须来研究研究如何部署docker了。

  1. 部署之前的准备
  2. 准备好相应的软件
  3. 测试
    4.结语

一、部署之前的准备

部署之前必须得说一句,我之前用的是window7系统32位,但是拿到官方文档一看才知道,用现在的系统可能永远都用不上docker了(因为当时我的第一想法是直接使用docker Desktop for windows),所以我把电脑先从win7 32位更新到win10 32位,后来又更新成64位的。
Ubuntu下安装docker方法详解装了win10 64位才发现还是有坑,因为docker desktop for Windows只支持win10专业版,并且版本号要在15603以上。当时彼时我还是没有马上启动虚拟机的决定,因为在查阅资料后发现可以通过DockerToolbox的方式来兼容win10 15603以下的版本,于是我下载之后尝试通过Docker Toolbox的方式来完成docker来安装,在安装完成之后电脑桌面上多出来这几个软件图标, Ubuntu下安装docker方法详解当然第一时间我打开了最左边的Docker Quickstart Terminal。
但是出现了这样的不友好的页面,在来来回回尝试了几回之后我发现这种方式体验并不好,而且最终在同事的帮助下也没能完成开发环境的搭建。
Ubuntu下安装docker方法详解
在同事的建议之下,我在VirtualBox里面安装了Ubuntu虚拟机16.04,当然安装虚拟机会花费大概1~2小时左右的时间,这点要有心理准备,在安装好了之后,我发现原生的Ubuntu16.04并不能直接为我所用,比如说当我在终端执行apt-get install git的时候显示没有候选的安装包
Ubuntu下安装docker方法详解Google之发现是下载源的问题。Ubuntu因为是国外的系统,所以默认提供的源是国外的网址,一是下载速度慢,另一点是一些安装包不完整,这时候最明智的做法是,替换成国内的镜像源。替换之前建议备份一下。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后,修改sources.list的权限,使其可编辑:

sudo chmod 777 /etc/apt/sources.list

接着,编辑sources.list文件(这里建议是用gedit):

sudo gedit /etc/apt/sources.list

把里面的内容替换成阿里或者清华的源:

阿里源:
1
	
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

清华的源:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

在替换完成之后,一定要做的事情是update一下软件列表:

sudo apt-get update

至此,换源完成。

More:在这里想多说一点是什么呢,可能有些开发人员也和我一样,在更换完源之后在执行sudo apt-get install [软件包名称] 的时候,还是会报错,类似E:Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavialable)
E: Unable to acquire the dpkg fronted lock (/var/lib/dpkg/lock-frontend), is another process using it?
这种一般是因为锁的问题,对应的解决方法是:删掉之前遗留下来的进程

sudo rm /var/cache/apt/archives/lock-frontend
sudo rm /var/lib/dpkg/lock-frontend

当然,我们要根据实际情况来执行相应的命令,如果错误提示如下:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavialable)
这时需要修改命令为:

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

二、开始部署

在解决了部署的环境问题之后,我们着手开始部署docker。目前,docker CE支持的Ubuntu版本有:
Bionic 18.04 (LTS)
.Xenial 16.04 (LTS)
.Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本)
***

Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,
LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的
版本会更稳定,因此在生产环境中推荐使用 LTS 版本。
首先,卸载旧版的docker(如果存在的话)

sudo apt-get remove docker \
	docker-engine \
	docker.io

Ubuntu16.04
Ubuntu16.04上的Docker CE默认使用overlay2 存储层驱动,无需手动配置。
使用APT安装
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要
添加使用 HTTPS 传输的软件包以及 CA 证书。

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install ca-certificates
sudo apt-get install curl
sudo apt-get install software-properties-common

为了确认所下载软件包的合法性,还需要添加软件源的 GPG **。

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/
gpg | sudo apt-key add -

引用的是国内中科大的镜像源

然后,我们需要向source.list 中添加Docker软件源

sudo apt-add-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linu
x/ubuntu \
$(lsb_release -cs) \
stable"

官方源:

#$ sudo add-apt-repository \
# "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) \
# stable"

(以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构
建版本的 Docker CE 请将 stable 改为 test 或者 nightly。)

安装Docker CE
更新aptr软件包缓存,并安装docker-ce:

sudo apt-get update
sudo apt-get install docker-ce

在这里我想说的是,我使用的是Ubuntu16.04LTS,但是在实际执行的过程中,并没有出现想要的效果,相反报错找不到候选的源
Ubuntu下安装docker方法详解
然后我又按提示,准备安装docker-ce-cli:amd64,同样安装不成功
Ubuntu下安装docker方法详解最后,在尝试安装依赖包的时候,我发现了替代方案,安装docker.io

sudo apt-get install docker.io

成功,然后启动docker。

sudo systemctl enable docker
sudo systemctl start docker

Ubuntu 14.04使用如下命令启动:

sudo service docker start

三、 测试docker是否安装成功

在terminal里面输入:

sudo docker run hello-world

但是,在这里并没有出现预期的成功提示,而是提示:
Ubuntu下安装docker方法详解这个时候我才明白,我少配置了一个东西,导致docker无法在本地找到hello-world的镜像源,也无法从docker的库里去拉去镜像源,出现这个问题的原因是因为我们没有配置镜像加速器,解决这个问题我们可以通过阿里云官方镜像加速帮助文档来获取,在页面的最下面,找到加速器地址的链接,通过登录阿里云帐号,每个人都可以生成自己的镜像加速器地址:
Ubuntu下安装docker方法详解然后,切换到/etc/docker目录下面,编辑daemon.json文件,通常这个文件是没有的,需要我们先用touch命令创建好,然后再把刚才生成的加速器地址放到里面来:

"registry-mirrors":["https://yoururl.mirror.aliyuncs.com"],

注意:因为在这里对docker做了重新配置,所以要求我们对docker服务器进行重启。

sudo systemctl restart docker

重启之后,可以通过

sudo systemctl status docker

来查看docker的状态。
Ubuntu下安装docker方法详解发现是正常启动的,然后我们来测试。

sudo docker run hello-world

当看到下面的界面的时候,表示我们已经成功了。
Ubuntu下安装docker方法详解docker正式在虚拟机上跑起来了。????

四、结语:

除了Ubuntu,docker 也可以在Fedora、Debian、CentOS、MacOS上部署运行,但是目前对于windows的支持还是比较有限,这也决定了大多数时候docker的移植性比较强,在一般用来做服务器的系统上都可以跑起来,加上docker在资源利用上的高效和CICD方面的优秀性能,相信在未来一定会成为越来越多开发人员的选择。