• 在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)


    背景

      平时开发大部人都是在提供了高效GUI的window下工作,但是真正部署环境普遍都是在Linux中,所以为了让开发环境和部署环境统一,我们需要在windows模拟LInux环境,以前我们可能通过虚拟机的方式实现,不过自从微软拥抱开源更加开发提供了Linux的Windows子系统(WSL)后,我们又多了一个选择,通过WSL运行linux程序(WSL比通过虚拟机来运行linux性能更强,耗费资源更小,安装linux环境最大只需要200多M)!经过几次调整WSL(用于Linux的Windows子系统,也被称为Bash for Windows)可以用于Docker for Windows。

      不过令人遗憾的是目前WSL是不支持Docker的守护进程但您可以使用Docker CLI连接到通过Docker for Windows或您创建的任何其他VM 运行的远程Docker守护进程

    概览

     docker的架构设计分为三个组件:一个客户端,一个REST API和一个服务器(守护进程)

    • Client :与REST API交互。主要目的是允许用户连接守护进程。
    • REST API:充当客户端和服务器之间的接口,实现通信。
    • 守护进程:负责实际管理容器 - 启动,停止等。守护进程监听来自docker客户端的API请求。

    守护进程与内核关系非常密切。今天在Windows中,当您运行Windows Server容器时,守护进程在Windows中运行。当您切换到Linux容器模式时,守护程序实际上在名为Moby Linux VM的虚拟机内运行随着Docker 即将发布,您将能够并行运行Windows Server容器和Linux容器,守护进程将始终作为Windows进程运行。

    然而,客户端不必与守护进程安装在同一个地方。例如,您可以在开发计算机上使用本地Docker客户端与Azure中的Docker进行通信。这使我们可以让WSL中的客户端与主机上运行的守护进程通信。

    前提:

    打开Hyper-V,并打开cpu虚拟化功能

    安装Docker for Windows

    安装WSL

    配置Docker for Windows

    在常规设置中,您需要公开没有TLS的守护进程。此步骤是必需的,以便守护程序在TCP端点上进行侦听。如果你不这样做,那么你将无法从WSL连接。

    所以为了让客户端和docker通信,必须打开以下黄色背景的选项!

    您可能还想共享您的驱动器(土话:盘符)。这一步不是必须的,但如果需要用到某个盘符的文件,建议勾选对应选项,转到“共享驱动器(Shared Drives)”设置并启用它。

     配置WSL

    我们需要在WSL上安装Docker客户端

    执行命令:apt installdocker.io

     将WSL配置为连接到Docker for Windows

    执行命令:export DOCKER_HOST=tcp://127.0.0.1:2375

     现在执行docker命令不会再出现以下提示:

    Cannot connect to the Docker daemon. Is the docker daemon running on this host?

    但是,该环境变量只会持续到会话结束。每次打开bash时都必须重新设置它。因此,为了避免这种情况,您需要在主目录中的一个名为.bash_profile或者 .bashrc的文件中设置该变量,

    这两个文件只支持ssh命令终端用vi打开

    在FileZilla文件访问软件是无法找到的

    打开这两个文件中有数据的那个并在结尾处添加

     保存后重新启动bash控制台执行docker相关命令可以照常执行了

    由于windows10的推出生产力又进一步释放,绝大部分开发人员还是继续会在windows上进行日常开发,但是linux又是普遍公认的服务器部署首选系统,开发人员有必要了解linux的日常使用,并在linux环境下进行测试程序的可靠性,wsl无疑为我们简化了这一过程,告别了使用虚拟机的开销,相信会让开发者更高效的工作

    
    
  • 相关阅读:
    2007年8月小记
    2007年7月小记
    CS2007.1 在多应用程序中的单点登录
    C#类型转换2
    checkbox与说明文字无法对齐的问题
    css中的内容溢出
    javascript获取的层(div)高度
    C#类型转换3
    js修改css样式表解析(转)
    (转)javascript选择id class
  • 原文地址:https://www.cnblogs.com/xiaoliangge/p/9134585.html
Copyright © 2020-2023  润新知