• wsl 下安装docker


    docker for windows本身其实是可以直接用的,但是仍然有很多不足,比如说:权限问题、没有docker.sock文件、文件编码问题等。而win10自带的wsl可以非常完美地解决这些问题。

     

    安装wsl

    首先在 程序和功能->启用和关闭windows功能中打开适用于Linux的Windows子系统

    然后打开微软应用商店,直接搜索Ubuntu,选择18.06版本的ubuntu安装

     

    wsl配置

    首先配置阿里云镜像,vim /etc/apt/sources.list

    deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

    然后更新源

    apt update

    默认情况下,windows的目录会自动挂载(mount)到wsl中的/mnt目录下,但是这样会导致后面的docker的相对路径问题。所以修改配置文件 /etc/wsl.conf

    [automount]
    root = /
    options = "metadata,umask=22,fmask=11"

    这样,windows里面的c盘就自动挂载到了wsl中的/c/目录下,d盘就自动挂载到了wsl中的/d/目录下

     

    安装docker for windows

    直接到官网上下载安装即可。

    安装的时候,因为我们要使用wsl中的docker,也就是linux container,所以记得不要选择windows container。

    安装好了之后,先配置加速器,目前我用阿里云和daocloud的加速器,都挺快的。到对应的网站上按照指示操作即可。

    开发的时候,需要把物理机上的代码和容器中的代码文件做共享,所以需要在Shared Drives中配置共享的盘符。你的代码在哪个盘里面,那么就选择共享哪个盘

     

    wsl中安装docker

    如果直接用apt来安装docker,不会是最新版的,所以参考官方文档来安装最新版的docker(https://docs.docker.com/install/linux/docker-ce/ubuntu/

    即:

    sudo apt-get remove docker docker-engine docker.io
    sudo apt-get update
    sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo apt-key fingerprint 0EBFCD88
    sudo add-apt-repository 
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
       $(lsb_release -cs) 
       stable"
    sudo apt-get update
    sudo apt-get install docker-ce

    试一下执行docker命令:

    docker version

    结果如下:

    Client:
     Version:      18.03.1-ce
     API version:  1.37
     Go version:   go1.9.5
     Git commit:   9ee9f40
     Built:        Wed Jun 20 21:43:51 2018
     OS/Arch:      linux/amd64
     Experimental: false
     Orchestrator: swarm
    
    Server:
     Engine:
      Version:      18.03.1-ce
      API version:  1.37 (minimum version 1.12)
      Go version:   go1.9.5
      Git commit:   9ee9f40
      Built:        Thu Apr 26 07:22:38 2018
      OS/Arch:      linux/amd64
      Experimental: false

    OK了,但是如果再run一下呢?

    docker run busybox

    此时会提示docker daemon没有运行。那么执行:

    sudo service docker start

    虽然看到is starting,但是docker还是不能run。

    此时,就需要打开docker for windows中的General->Expose daemon on tcp://localhost:2375 without TLS

    然后在wsl中执行:

    export DOCKER_HOST=tcp://localhost:2375

    然后就可以开始run了。

    另外默认情况下是不会安装docker-compose的,如果通过apt来安装docker-compose,也不会是最新版,但是通过pip来安装的就是最新版,所以:

    sudo apt install python-pip
    sudo pip install docker-compose

    测试下:

    docker-compose version
  • 相关阅读:
    AJPFX关于集合的几种变量方式
    AJPFX关于java的依赖 关联 聚合的关系解释
    AJPFX对选择和冒泡两种排序的理解
    AJPFX总结抽象类和接口的区别
    AJPFX的内存管理小结
    AJPFX关于Java内部类及其实例化
    AJPFX总结String类的特点
    AJPFX简述Scanner类的特点
    监督学习——K邻近算法及数字识别实践
    对称(DES/AES)与非对称(RSA/SSL/数字证书)加密介绍及实际应用
  • 原文地址:https://www.cnblogs.com/sweetsunnyflower/p/10543318.html
Copyright © 2020-2023  润新知