Docker的安装和升级引擎

1. 安装docker

我这里是使用虚拟机上的linux系统下安装使用docker。vmware16和ubuntu20

在ubuntu里面安装docker,打开shell

$ wget -qO- https://get.docker.com/ | sh

此命令是获取并运行 Docker 安装脚本,然后采用管道(pipe)的方式来执行这个脚本。

一开始执行后,提示了 “无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?”这样的错误,采用以下命令先解锁,再执行上面的脚本就可以了。

sudo rm /var/lib/dpkg/lock-frontend

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

sudo rm /var/lib/dpkg/lock

需要添加非 root 用户到本地 Docker Unix 组当中。

$ sudo usermod -aG docker york (york是当前登录用户)

$ cat /etc/group | grep docker 执行后会显示docker:x:998:york

docker system info会列出docker的一些信息,后面会报错

Server:

ERROR: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: dial unix /var/run/docker.sock: connect: permission denied

errors pretty printing info

docker进程使用 Unix Socket 而不是 TCP 端口。而默认情况下,Unix socket 属于 root 用户,因此需要 root权限 才能访问。以下命令可以解决

sudo groupadd docker          #添加docker用户组

sudo gpasswd -a $york docker   #检测当前用户是否已经在docker用户组中,其中york为用户名

sudo gpasswd -a $USER docker  #将当前用户添加至docker用户组

newgrp docker                 #更新docker用户组

再执行docker version就不会报错了。

2. 引擎升级

升级 Docker 引擎(Engine)是一项重要的任务,尤其是生产环境。

升级 Docker 引擎的关键步骤如下。

需要重视升级操作的每个前置条件,包括确保容器配置了正确的重启策略;在 Swarm Mode 模式下使用服务时,需要确保正确配置了 draining node。

当完成了上述前置条件的检查之后,可以通过如下步骤完成升级操作。

1) 停止 Docker 守护程序。

2) 移除旧版本 Docker。

3) 安装新版本 Docker。

4) 配置新版本的 Docker 为开机自启动。

5) 确保容器重启成功。

上面就是全部的关键步骤。下面通过具体例子来进行介绍。

不同版本的 Linux 在升级 Docker 的时候,命令可能略有区别。

在ubuntu上升级示例:

假设已经完成了全部的升级前置步骤并且 Docker 处于可以升级的状态,同时还可以用 root 用户身份运行升级命令。

以 root 用户运行升级命令是不推荐的,但是可以简化示例。如果不采用 root 用户运行升级命令,那么需要通过 sudo 来执行下列指令。

1) 更新 APT 包列表。

$ apt-get update
2) 卸载当前 Docker。

$ apt-get remove docker docker-engine docker-ce docker.io -y
在之前的版本中,Docker 引擎的包名可能有多个。这条命令能够确保已经安装的 Docker 包全部被删除。

3) 安装新版本 Docker。

有不同版本的 Docker 可供选择,并且有多种方式可以安装 Docker。

无论是 Docker CE 还是 Docker EE,都有不止一种安装方式。例如,Docker CE 可以通过 apt 或者 deb 包管理方式进行安装,也可以使用 Docker 官网上的脚本。

接下来的命令使用get.docker.com的脚本完成最新版本 Docker CE 的安装和配置。

$ wget -qO- https://get.docker.com/ | sh
4) 将 Docker 配置为开机自启动。

$ systemctl enable docker

Synchronizing state of docker.service...
Executing /lib/systemd/systemd-sysv-install enable docker

$ systemctl is-enabled docker
enabled
此时读者可能想重启自己的节点。这样可以确保刚安装的 Docker 不会对系统开机有任何的影响。

5) 检查并确保每一个容器和服务都已经重启成功。

$ docker container ls

$ docker service ls
更新 Docker 还有其他的方法,这里只是介绍了基于 Ubuntu 的方式。

在实践的时候出现如下错误,实际上是没有把docker作为swarm模式,执行如下命令即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值