Linux中docker安装记录

前言

Docker是一个非常方便的应用容器的引擎,相当于把应用的相关运行环境都打包成盒,直接部署,开箱即用,几乎无需再进行配置,懒人必备。
这次我们选择Docker部署,那么首先就需要安装并配置Docker在我们的Ubuntu上。这次安装的是Docker Communtiy也就是一般说的Docker CE(即社区免费版)。

1. 安装准备工作

1.1 确认当前系统版本

需要安装Docker的话,你需要确认你的Ubuntu是64位的,并且是以下4个版本号其中之一:

  • Disco 19.04
  • Cosmic 18.10
  • Bionic 18.04(LTS)
  • Xenial 16.04(LTS)

查看版本号:

lsb_release -c

通过上面的指令来查看Ubuntu的codename,看一下是否是上面4个版本号其中之一。
另外,Docker支持x86-64(amd64),armhf, arm64, s390x(IBM Z), ppc64le(IBM Power)硬件架构。通常我们遇到比较多都是X86芯片的机器。

1.2 卸载旧版Docker

旧版的Docker有很多叫法,有docker, docker.io, 或是docker-engine。为了确保安装顺利,我们应该先把这些老旧的docker卸载,输入以下指令:

sudo apt-get remove docker docker-engine docker.io containerd runc

如果顺利,那么会输出none of these packages are installed。

2. 正式安装

2.1 使用Repository安装

第一种安装方法是通过Repository安装。我们需要先设置一个Repository软件仓库,然后我们从这样一个仓库来安装或更新。(在官方文档中另有两种安装方式:从.deb包文件安装;从官方简易脚本安装,这里不做详细介绍)
首先更新apt包管理器的源:

sudo apt-get update

然后通过设置apt来允许通过https传输的一个仓库:(这里输入了 \后,直接按下回车,会出现一个>符号,可以继续进行下一行的输入)

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

随后我们添加Docker官方的GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

然后我们输入:

sudo apt-key fingerprint 0EBFCD88

来验证密钥是否正确,如果正确的话,应该是和下面这样的输出一致:

pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) [email protected] sub rsa4096
2017-02-22 [S]

现在我们来设置repository,你需要输入:

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

注意:如果你想要使用nightly或test版本(新颖却不稳定)的版本,只需要在stable字段后面,增加nightly或test或者两个都加进去。

好了,现在仓库已经设置完毕了,我们可以通过它来安装Docker了,再刷新一下apt的源:

sudo apt-get update

然后,如果需要安装最新的docker的话,输入下面的指令即可:

sudo apt-get install docker-ce docker-ce-cli containerd.io

当然,用 apt安装的是最新版,但是出于稳定考虑你可能需要某个具体版本,那么你可以通过

apt-cache madison docker-ce

获取仓库中的docker版本,你可能会收到以下提示:

docker-ce | 5:18.09.13-0ubuntu-xenial |
https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.03-0ubuntu-xenial |
https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1ce3-0~ubuntu |
https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0ce3-0~ubuntu |
https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
…

而后通过:

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=VERSION_STRING> containerd.io

2.2 验证安装

使用命令

docker version

这里显示到缺失docker.io,使用

apt-get install docker.io

又报错:

下列软件包有未满足的依赖关系:
docker.io : 依赖: containerd (>= 1.2.6-0ubuntu1~)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决:

# 查看是否安装了 containerd
$ dpkg -l containerd*
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称                          版本                体系结构            描述
+++-=============================-===================-===================-===============================================================
ii  containerd                    1.5.5-0ubuntu3~18.0 amd64               daemon to control runC
rc  containerd.io                 1.6.6-1             amd64               An open and reliable container runtime

# 如果containerd不存在,则安装
sudo apt install containerd
# 如果containerd.io不存在,则安装
sudo apt-get install containerd.io

# 安装成功后再安装 docker.io
sudo apt-get install docker.io
# 查询版本
docker version

安装的时候出现错误

E: Sub-process /usr/bin/dpkg returned an error code (1)

解决:
使用命令进行修复:

sudo apt-get -f install 

后重新安装即可!!

完成安装!!!!
如果出现其他问题,再查询即可,整体流程是完整的!

3. 其他配置

3.1 子用户使用docker时sudo问题解决

1、创建名为docker的组,一般在安装docker的时候自动创建,此步骤可省略:

sudo groupadd docker

2、将当前用户加入组docker:

sudo gpasswd -a ${USER} docker

3、重启docker服务:

sudo systemctl restart docker

4、重新启动服务器

shutdown -r now

5、操作完毕,验证一下,现在可以不用带sudo了:

arlo@inboc-pc-415:~$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

如果上述方法不行直接使用如下命令:

sudo groupadd docker
sudo usermod -aG docker $USER # USER是系统变量
newgrp docker

猜你喜欢

转载自blog.csdn.net/frighting_ing/article/details/129256398