平时开发大部人都是在提供了高效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无疑为我们简化了这一过程,告别了使用虚拟机的开销,相信会让开发者更高效的工作

windows守护进程_在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)相关推荐

  1. linux windows文件 编码_解决Linux与Windows文件显示乱码的问题

    重点:如果windows 下和虚拟机共享文件,先将文件移到其他位置使用notepad++ 改变编码模式为UTF-8,然后复制到共享目录,然后用编辑器打开中文就不是乱码了. 问题: 在Windows下用 ...

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

    背景 平时开发大部人都是在提供了高效GUI的window下工作,但是真正部署环境普遍都是在Linux中,所以为了让开发环境和部署环境统一,我们需要在windows模拟LInux环境,以前我们可能通过虚 ...

  3. mysql 开启守护进程_[求助]Linux上MySQL Server 5.6 安装后无法启动守护进程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1 所谓的初始化数据库脚本运行错误 /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/lo ...

  4. Windows守护进程简单示例

    转载: https://blog.csdn.net/kikaylee/article/details/51395360 /* @描述:一个简单的Windows守护进程的例子(C++版本) @作者:ki ...

  5. Windows守护进程实现/设置程序图标/隐藏黑窗/获取exe所在目录/设置开机自启动

    功能:实现一个windows守护进程,设置有自定义图标,启动后隐藏黑窗口,获取exe所在目录,并设置开机自启动(需要以管理员权限运行).如果需要打包成可执行的安装包程序,见另一篇博客:https:// ...

  6. windows做时间服务器,linux和windows时间同步

    windows做时间服务器,linux和windows时间同步 在Windows上设置NTP 英文版:http://www.satsignal.eu/ntp/setup.html#local Mein ...

  7. linux 守护进程_网络工程师之linux守护进程

    Linux守护进程就是通常所说的DEAMON进程,linux后台服务多种多样,每一个服务都运行一个对应的程序,这些后台程序对应的进程就是守护进程.系统中可以看到很多如DHCPD和HTTPD之类的进程, ...

  8. windows守护进程

    一.逻辑分析 1.windows没有fork函数,无法创建僵尸进程,使用打开非子进程的方式打开外部进程---打开外部进程 2.守护进程应该是单例的进程--->单例进程 3.守护进程应该是存在一个 ...

  9. liunx 加入域控_让Linux使用Windows域控制器做用户认证

    最近为了做一个客户的问题需要搭一套Windows AD给Linux通过winbind做认证使得Windows AD用户可以登陆Linux机器的环境.因为头一次做这样的配置,所以颇费了一番周折.下面就记 ...

最新文章

  1. 给VMware虚拟机增加硬盘容量:Linux/Windows系统
  2. jota-time 练习
  3. python自学入门教程-Python基础教程,Python入门教程(非常详细)
  4. 都 2021 年了,Serverless 能取代微服务吗?
  5. 教你一个快速视频处理的神器:Python moviepy
  6. Chem 3D模型的参数值更改方法
  7. Jarvis Oj Pwn 学习笔记-level0
  8. Dijkstra与Floyd算法
  9. 计算机软件专业代码表,2019-04-09 计算机软件适用的国民经济行业代码表
  10. 无线网检查服务器在那,无线网络服务器地址在哪里找
  11. 对计算机科学的总体认识,浅谈对计算机科学与技术的认识
  12. 明尼苏达大学研究者为bug事件致歉
  13. 每天努力再多一点,每天坚持再久一点
  14. pdf java 开源_Java开源PDF类库 分类列表
  15. 小孔成像总结_初中物理知识点总结+解题技巧+方法总结全汇总
  16. 通过强化学习和官方API制作《星露谷物语》的自动钓鱼mod
  17. 越狱第三季第一集 在线免费观看
  18. 分享一些优秀的思维导图作品
  19. 运维批量管理工具-clustershell
  20. 中国企业应该如何应对GDPR?

热门文章

  1. R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...
  2. html手机端富文本,pc端富文本编辑的字符串在手机端适配
  3. 机床使用教学_辽宁高校学子前往凤城市,进行与数控机床相关的专业实践活动...
  4. LPV(Light Propagation Volumes)
  5. angularjs的三种注入方式
  6. 判断浏览器设置相应的CSS
  7. 哈尔滨有线电视频道表
  8. MATLAB学习笔记(十六)
  9. python图像识别坐标转换成g代码_python - 将坐标系导出为ESPG代码:to_epsg()或ExportToEPSG() - SO中文参考 - www.soinside.com...
  10. jena 开发之 mysql数据导入_在Jena框架下基于MySQL数据库实现本体的存取操作