美文网首页
Ubuntu 上安装 Docker

Ubuntu 上安装 Docker

作者: hemiao3000 | 来源:发表于2021-12-21 10:20 被阅读0次

    以下命令默认以 root 进行操作。

    另外,开发环境中,简单起见,记得关闭 Linux 防火墙

    # 命令
    查看状态 sudo ufw status
    开启并开机启动 sudo ufw enable
    关闭 sudo ufw disable

    Ubuntu 的防火墙默认是关闭的。

    前期准备工作

    Ubuntu 的默认的 apt 软件源中实际上有 docker 的安装包,理论上来说,你直接利用默认软件源中的 docker 安装包进行安装也是可行的。

    但是 docker 官方考虑到不同的用户对 docker 的不同版本有不同的需求<small>(有人追求最新,有人追求稳定)</small>,他们专门提供了一个仓库用以提供多个版本的 docker 的下载。

    另外,通常 apt 默认软件源中的软件的版本并不一定是最新版。

    因此,我们必须『告知』apt 有这样一个仓库的存在,并且未来要求 apt 从这个仓库中下载我们指定版本的 docker 。<small>而非默认的仓库。</small>

    1. 查看内核版本

      Docker 官方要求 Linux 内核版本至少 3.8 以上,建议 3.10 以上。Ubuntu 18.04 的内核是符合其要求的。

      通过以下命令可查看内核版本:

      uname -r
      
    2. 卸载旧版本

      较旧的 Docker 版本称为 dockerdocker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。

      sudo apt remove \
              docker \
              docker-engine \
              docker-ce \
              docker.io
      
    3. 为配置 docker 软件源作准备

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

      <small>这一步操作是为下一步操作作准备工作。</small>

    4. 为 apt 将要添加的 docker 软件源添加校验

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

      <small>这一步操作是为下一步操作作准备工作。</small>

    5. 为 apt 添加 docker 官方软件源

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

      这步操作的最直观的效果就是:你的 /etc/apt/sources.list 文件中会『多出来一行』<small>(一个远程仓库的网址)</small>

      sudo sed -i     's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/apt/sources.list
      

      记得执行以此 sudo apt update,去更新『软件清单』。

    1. 验证仓库是否添加成功:查看所有仓库中所有 docker 版本

      apt-cache madison docker-ce
      

    安装 docker 并验证

    从网络仓库中下载,安装

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

    在没有指定版本的情况下,apt 下载的是软件源中的最新版。如果想要指定特定版本,则使用如下语法:

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

    带入特定版本号,例如:5:19.03.13~3-0~ubuntu-bionic

    启动 Docker

    类似于 MySQL,Docker 也是基于 CS 架构的。你的 Ubuntu 上存在一个 Docker 服务端和一个 Docker 客户端。

    要使用 Docker 的前提是:确保 Docker 的服务端启动了。

     启动 docker 服务端
    sudo systemctl start docker
    
     将 docker 服务端设置为开机启动
    sudo systemctl enable docker
    

    验证安装是否成功

    Docker 是 CS 架构的,docker 的服务端是以 docker 用户<small>(属于 docker 用户组)</small>身份运行的,因此你去执行 docker 命令时,你的身份<small>(和权限)</small>是不符合的。

    当你通过 docker version 命令去验证安装是否成功时,会出现如下信息:

    Got permission denied while trying to connect to the Docker daemon socket ...... connect: permission denied
    

    <small>有 client 和 server 两部分表示 docker 安装启动都成功了。</small>

    解决办法有 2 个:

    1. 你所执行的所有的 docker 命令前面都加上 sudo 。将你的身份临时提升为 root,root 自然是有权限执行 docker 命令的。

      sudo docker version
      
    2. 将你自己添加到 docker 用户组中。你和 docker 用户所属同一个用户组,你的自然就有权限执行 docker 命令。

      # 创建名为 docker 的用户组。
      # 正常情况下,这条命令的结果会告诉你 docker 用户组已存在。
      sudo groupadd docker 
      
      # 将当前用户(即你所登录系统的账号)添加至 docker 用户组
      sudo gpasswd -a $USER docker 
      
      # 更新 docker 用户组
      newgrp docker 
      

    验证连接 docker hub 中央镜像仓库

    输入 docker search -f is-official=true mysql 命令,会出现类似如下结果:

    NAME     DESCRIPTION                                     STARS  OFFICIAL ...
    mysql    MySQL is a widely used, open-source relation…   8819   [OK]     ...
    mariadb  MariaDB is a community-developed fork of MyS…   3102   [OK]     ...
    percona  Percona Server is a fork of the MySQL relati…   459    [OK]     ...
    

    配置国内镜像

    由于 docker hub 的中央镜像仓库在国外,因此有时我们连接 docker hub 从中下载镜像速度会很感人,因此,我们需要配置国内的镜像网址,从国内现在镜像文件。

    :::tip
    国内的镜像本质上就是 docker hub 中央仓库在国内的一份缓存/备份。
    :::

    通过 vi 命令编辑相关配置文件:

    sudo vi /etc/docker/daemon.json 
    

    如果该文件存在,则将其内容清除;如果文件不存在,<small>(打开该文件后,其内容是空白的),</small>编辑结束后保存退出,即创建。

    输入如下内容:

    {
      "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn"
      ]
    }
    

    <small>该配置文件配置了两个镜像,一个是 docker 官方在中国境内的官方镜像,一个是中科大维护的一个镜像。</small>

    重新启动 docker 服务:

    sudo systemctl restart docker
    

    查看修改结果:

    docker info
    

    会有如下内容:

    ...
    Registry Mirrors:
     https://registry.docker-cn.com/
     https://docker.mirrors.ustc.edu.cn/
    ...
    

    导入已有的镜像文件

    考虑到有些场景下的联网的不方便,docker 提供了将已下载的 images 打包导出,再在别处导入的功能。

    导出已有 image 使用命令:

    docker save <repository>:<tag> -o <repository>.tar
    

    例如:

    docker save mysql:8.0.16 -o mysql-8.0.16.tar
    

    导入 image 使用命令:

    docker load -i <repository>.tar
    

    例如:

    docker load -i mysql-8.0.16.tar
    

    相关文章

      网友评论

          本文标题:Ubuntu 上安装 Docker

          本文链接:https://www.haomeiwen.com/subject/vuztqrtx.html