环境: win 10 子系统 Ubuntu 18.0.4 LTS
按照下面的步骤: ubuntu 16.04.4 LTS 系统中很顺利,大家可以多尝试

查看版本: sudo lsb_release -a

删除旧版 docker
    sudo apt-get remove docker docker-engine docker.io
安装
    sudo apt update 
     --------- sudo apt install docker.io 【旧版】
    新版:
    Set up the repository
        1. 安装软件包来允许apt通过HTTPS使用存储库 
                sudo apt-get install \
                apt-transport-https \
                ca-certificates \
                curl \
                software-properties-common

        2. 添加Docker的官方GPG密钥 
                curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

                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) 
                sub   4096R/F273FCD8 2017-02-22

        3. 添加稳定版仓库
                $(lsb_release -cs)     // 会自动匹配符合内核的稳定版
                目前 ubuntu 18.0.4 没有可匹配的 稳定版本,可以将下面的替换成:
                sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu artful  stable"  

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

Install Docker CE
        1. Update the apt package index.
                sudo apt-get update
        2. Install the latest version of Docker CE, or go to the next step to install a specific version:
                sudo apt-get install docker-ce
                如果报错:Package has no installation candidate
                可以执行:
                        sudo apt update
                        sudo apt upgrade
                        sudo apt install docker-ce
                如果报错:E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
                    可再次顺序执行上面的三个命令,多次尝试,楼主反正是遇到过多次这种情况
        3. 验证安装
                不使用sudo执行docker命令
                创建docker组
                sudo groupadd docker
                将当前用户加入docker组
                sudo gpasswd -a ${USER} docker
                重启docker
                sudo service docker restart
                刷新docker组
                newgrp - docker

启动后台服务
    sudo service docker start     或
    sudo systemctl start docker

更换 ubuntu 镜像源
    https://blog.51cto.com/12750968/2121249

更换 docker 国内源  
    Daocloud       http://guide.daocloud.io
    不同版本、不同系统的配置文件不同
    一般是 /etc/default/docker [1.12 以上的版本 ]    或者  /etc/docker/deamon.json  [1.8-1.11之间的版本] 【不存在则创建】

    ① 备份配置文件 
    ② 使用配置命令
            curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://a86d77e2.m.daocloud.io

            手动配置 
            1.12以上版本,创建或修改 /etc/docker/daemon.json 文件
            {
                "registry-mirrors": [
         "加速地址"
                ],
            "insecure-registries": []
            }

            1.8-1.11 版本
            sudo vim /etc/default/docker
            DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io"

    ③ 重启
        sudo service docker restart     或   sudo systemctl restart docker

常用指令
    docker --version       --查看版本
    docker   version        -- 查看版本信息
    docker  info               --版本相关信息
    docker image ls        --列出本机所有 image 文件
    docker images         --列出本机所有 image 文件
  docker image rm   [-f  强制删除] [imageName]        --删除 image 文件
    docker image pull library/hello-world        --将image 文件从仓库抓取到本地,非必需
    docker container run hello-world     --从 image 文件生成容器实例,不存在则从仓库获取
    docker run hello-world         --运行 image 文件,不存在则从远程仓库获取
    docker container kill [containID]       --手动停止不会自动终止的容器实例
    docker container ls       --列出本机正在运行的容器,会显示containerID
    docker container ls  --all     --列出本机所有的容器,包括已经停止的,显示containerID
    docker container rm [containerID]      --根据 id 删除容器实例
    docker container rm [reg正则]       --需要进入 /var/lib/docker/containers/