zoukankan      html  css  js  c++  java
  • Ubuntu 系统安装 Docker

    安装 Docker CE 有多种方法,下面是最简单的通过Docker仓库的安装方法,其他方法参见官方文档

    设置仓库

    1. 刷新软件包

      sudo apt-get update
      
    2. 安装必要的软件包

      sudo apt-get install 
          apt-transport-https 
          ca-certificates 
          curl 
          gnupg-agent 
          software-properties-common
      
    3. 添加 Docker 官方 GPG key

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

      验证指纹是否为 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, 可以通过搜索指纹的后8位来进行验证。

      sudo apt-key fingerprint 0EBFCD88
      
      result:
       pub   rsa4096 2017-02-22 [SCEA]
             9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
       uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
       sub   rsa4096 2017-02-22 [S]
      
    4. 使用下面的命令添加 稳定版 仓库

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

    安装 Docker CE

    1. 刷新软件包

      sudo apt-get update
      
    2. 安装最新版的 docker ce 和 containerd

      sudo apt-get install docker-ce docker-ce-cli containerd.io
      
    3. 通过运行 hello-world 镜像来验证是否安装成功

      sudo docker run hello-world
      

      Docker CE 安装完成后,会建立 docker 用户组,但是没有用户分配,所以需要通过 sudo 来运行 Docker 命令。

    其他设置

    国内容器镜像加速

    使用加速器可以提升获取Docker官方镜像的速度,下面使用阿里云镜像进行加速。

    通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://jjzi6741.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    使用非 root 用户管理运行 Docker

    参考链接

    Docker 守护进程绑定在 Unix socket 而不是 TCP 端口。默认情况下 Unix socket 归属于 root 用户,其他用户只能通过 sudo 命令访问。所以 Docker 守护进程总是以 root 用户来运行。

    如果你不希望每次运行 docker 命令时在前面加上 sudo,你可以创建一个 docker 用户组并把用户加进去。当 Docker 守护进程启动时,会创建一个 Unix socket 供 docker 用户组成员访问。

    警告

    docker 用户组成员和 root 用户有相同的权限,请查看 Docker Daemon Attack Surface 以了解更多关于系统安全的影响。

    创建 docker 用户组并添加你的用户

    1. 创建 docker 用户组

      sudo groupadd docker
      
    2. 添加你的用户到 docker 用户组

      sudo usermod -aG docker $USER
      
    3. 重新登录以试权限生效。

    4. 验证是否可以不使用 sudo 命令来运行 docker

      docker run hello-world
      

      这个命令会下载一个 test 镜像并在容器中运行。运行完成后,会显示欢迎信息并退出。

      如果你在把用户加到 docker 用户组之前使用了 sudo 运行过 Docker 命令,可能会遇到下面的错误提示,是因为 ~/.docker/ 权限不对导致的。

      WARNING: Error loading config file: /home/user/.docker/config.json -
      stat /home/user/.docker/config.json: permission denied
      

      解决这个问题,可以通过删除 ~/.docker/ 目录(自定义设置会丢失),或者用下面的命令来更改权限。

      sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
      sudo chmod g+rwx "$HOME/.docker" -R
      

    安装 Docker Compose

    参考链接

    在 Linux 系统,可以通过 Compose repository release page on GitHub 来下载 Docker Compose 二进制文件。

    对于 alpine 系统,需要安装以下依赖包: py-pip, python-dev, libffi-dev, openssl-dev, gcc, libc-dev make

    1. 运行下面命令下载最新稳定版 Docker Compose

      sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      

      下载不同的版本,更改命令中的版本号即可。

    2. 给文件加上可执行权限

      sudo chmod +x /usr/local/bin/docker-compose
      

    注意: 如果安装后执行 docker-compose 失败,请检查 PATH 变量。亦可以建立软连接。

    比如:

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
    1. (可选), 为 bashzsh 安装 command completion

    2. 验证安装是否成功

      $ docker-compose --version
      docker-compose version 1.24.0, build 1110ad01
      

    更多技术文章,请访问我的个人网站:https://www.codingbit.net

  • 相关阅读:
    同步 异步 阻塞 非阻塞深入理解
    TCP的三次握手四次挥手
    dom事件
    Vue 无痕 刷新页面
    事件冒泡 捕获 事件流
    gulp
    懒加载
    Object.prototype.toString.call() 判断某个对象属于哪种内置类型 type instanceof Object.prototype.toString.call 区别
    css sass less
    node module.exports exports
  • 原文地址:https://www.cnblogs.com/codingbit/p/install-docker-in-ubuntu.html
Copyright © 2011-2022 走看看