• ubuntu16.04下docker安装和简单使用


    前提条件

    操作系统

    docker-ce支持的ubuntu版本:

    • Bionic 18.04 (LTS)
    • Xenial 16.04 (LTS)
    • Trusty 14.04 (LTS)

    卸载旧版本docker[可选]

    $ sudo apt-get remove docker docker-engine docker.io --purge
    

    支持的存储驱动程序

    对于ubuntu16.04及以上版本,其linux内核中包含了对于OverlayFS的支持。Docker CE默认使用overlay2存储引擎,如果想要使用aufs,可参考aufs

    安装 Docker CE

    方法1: 使用repository进行安装

    Step1. 更新源,安装相应的依赖包

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

    Step2 安装Docker镜像

    方式1> 安装国内阿里Docker CE镜像[国内推荐]

    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    

    方式2> 安装docker的官方 GPG key[国内不推荐,需要翻墙]:

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

    可能存在的问题:
    如果等了很长时间也下载不了,说明被墙了,需要通过代理下载,例如使用本地的shawsocks代理

    $ export https_proxy=socks5://127.0.0.1:1080
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    OK
    

    安装完成后,最好使用指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88对key进行验证

    $ sudo apt-key fingerprint 0EBFCD88
    pub   4096R/0EBFCD88 2017-02-22
          Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid                  Docker Release (CE deb) <docker@docker.com>
    sub   4096R/F273FCD8 2017-02-22
    

    Step3. 安装稳定版的repository

    方式1> 阿里repository[国内推荐]

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

    方式2> 官方repository[国内不推荐]

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

    4. 安装Docker CE

    方式1) 安装最新版Docker CE
    $ sudo apt-get update
    $ sudo apt-get install docker-ce
    

    如果使用国外官方镜像,可能存在以下问题:
    update更新时间过长,一直卡住不动,形如:

    $ sudo apt-get update
    Hit:1 http://mirrors.aliyun.com/ubuntu xenial InRelease
    Hit:2 http://mirrors.aliyun.com/ubuntu xenial-updates InRelease
    Hit:3 http://mirrors.aliyun.com/ubuntu xenial-backports InRelease
    Hit:4 http://mirrors.aliyun.com/ubuntu xenial-security InRelease
    0% [Working] 
    

    或是

      Could not resolve host: download.docker.com
    Reading package lists... Done
    W: Failed to fetch https://download.docker.com/linux/ubuntu/dists/xenial/InRelease  Could not resolve host: download.docker.com
    

    或是

    Err:5 https://download.docker.com/linux/ubuntu xenial InRelease
      Operation timed out after 0 milliseconds with 0 out of 0 bytes received
    Reading package lists... Done
    W: Failed to fetch https://download.docker.com/linux/ubuntu/dists/xenial/InRelease  Operation timed out after 0 milliseconds with 0 out of 0 bytes received
    
    方式2) 安装指定版本Docker CE
    # 获取可用版本
    $ apt-cache madison docker-ce
    # 安装指定版本
    $ sudo apt-get install docker-ce=<VERSION>
    例如: 
    $ sudo apt-get install docker-ce=17.06.2~ce-0~ubuntu 
    

    5. 验证Docker CE是否成功安装

    方式1) 以root身份运行hello-world

    $ sudo docker run hello-world
    

    方式2) 以普通用户身份运行hello-world

    # 0. 首先要确保docker服务已经启动
    $ systemctl status docker
    
    # 1. 使用root身份创建用户并设置密码,给用户添加及sudo权限[如果有普通用户可跳过,这里是为了演示需要]
    # 创建新用户bob
    # useradd -m -d /home/bob -s /bin/bash bob
    # passwd bob
    # tail -n 1 /etc/passwd
    bob:x:1000:1000::/home/bob:/bin/bash
    
    # 该bob添加sudo权限
    # usermod -aG sudo bob
    
    # 下面使用bob登录
    # su - bob
    
    # 2. 创建名为docker的组
    $ sudo groupadd docker
    
    # 3. 将当前用户加入到docker组中
    $ sudo usermod -aG docker $USER
    
    # 4. 注销,如果远程登录先断开连接在重新连接,使得usermod修改生效,这一步非常重要
    
    # 5. 验证
    $ docker run hello-world
    

    usermod修改后不会立即生效

    # 查看当前用户所属组
    $ groups 
    bob sudo
    
    # 查看指定用户所属组
    $ groups bob
    bob : bob sudo
    
    # 查看当前用户信息
    $ id
    uid=1000(bob) gid=1000(bob) groups=1000(bob),27(sudo)
    
    $ sudo usermod -aG docker bob
    $ groups
    bob sudo
    $ id
    uid=1000(bob) gid=1000(bob) groups=1000(bob),27(sudo)
    # 可以发现usermod修改后并未立即生效
    
    如果是远程登录,可以先断开连接再重新连接,或是使用su进行切换命令
    $ su - bob
    Password: 
    $ groups
    bob sudo docker
    $ id
    uid=1000(bob) gid=1000(bob) groups=1000(bob),27(sudo),999(docker)
    # 重新登录发现修改生效
    

    方法2: deb包安装

    deb包下载地址

    方法3: 使用脚本一键安装

    方式1> 使用阿里Docker镜像源安装脚本[国内推荐]

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    

    方式2> 使用官方安装脚本

    $ curl -fsSL https://get.docker.com -o get-docker.sh
    $ sudo sh get-docker.sh
    

    开机启动

    # 设置开机启动
    $ sudo systemctl enable docker
    # 关闭开机启动
    $ sudo systemctl disable docker
    

    Docker CE 彻底卸载

    # Step1: 关闭服务
    $ sudo service docker stop
    
    # Step2: 查看安装的软件包
    $ dpkg -l | grep -i docker
    
    # Step3:  卸载
    $ sudo apt-get purge -y docker-engine docker docker.io docker-ce  
    $ sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce  
    
    # Step4: 删除相关数据和配置文件
    $ sudo ls /var/lib/docker/
    aufs  containers  image  network  plugins  swarm  tmp  trust  volumes
    $ sudo rm -rf /var/lib/docker 
    $ sudo rm /etc/apparmor.d/docker
    $ sudo groupdel docker
    $ sudo rm -rf /var/run/docker /var/run/docker.sock
    
    # Step5: 删除interface docker0
    $ sudo ifconfig
    docker0   Link encap:Ethernet  HWaddr 02:42:03:99:8a:e8  
    $ sudo ip link del docker0
    

    参考:

  • 相关阅读:
    Android插件化技术简介
    Fragment回退栈&commit()和commitAllowingStateLoss()
    Android热更新技术——Tinker、nuwa、AndFix、Dexposed
    Object的wait/notify/notifyAll&&Thread的sleep/yield/join/holdsLock
    synchronized与Lock的区别与使用
    多分类Logistics回归公式的梯度上升推导&极大似然证明sigmoid函数的由来
    从损失函数的角度详解常见机器学习算法
    LR的损失函数&为何使用-log损失函数而非平方损失函数
    css Cascading Style Sheet 层叠样式表
    前端—— 前端介绍开始(二)
  • 原文地址:https://www.cnblogs.com/hupeng1234/p/9773770.html
Copyright © 2020-2023  润新知