关于使用docker在windows上搭建Linux环境
在Window10中使用Docker搭建Linux并配置并发版环境
大部分人在window中搭建Linux环境的主要方法可能是双系统或虚拟机,最近接触到Docker(一种新兴的虚拟化技术,可以快速有效的配置出各个版本的开发环境),在此就接触、了解、安装、使用历程谈谈体验。
一.熟悉并理解Docker
首先在理解docker之前先阐述一个概念:容器。
很多人在windows平台使用过虚拟机,但对容器的概念很陌生,比如传统虚拟机VMware,需要模拟出整台机器包括底层硬件,每台对应的虚拟机需要自己的操作系统,开启后也会占用对应的(预分配的)资源。
而容器技术则是共享宿主机的底层硬件及操作系统,动态的进行资源分配,在用户空间中以分离的进程运行。容器技术作为操作系统虚拟化的一种途径,可以打包应用程序的代码、配置以及依赖关系,从而达到环境的一致性、版本的一致性。
Docker作为Linux容器的封装,提供了特别简便的容器作为接口。 换言之,Linux容器并不模拟完整的操作系统,而是对单一进程进行隔离,对容器里的进程来说,它所接触的资源都是虚拟的,进而实现与底层系统的额隔离。
Docker相比传统虚拟机方式具有许多优势:
轻量、启动快速、占用资源少、系统利用率高、高可用和高恢复性。
对于在Docker中的三个基本概念:
1.Image(镜像)
镜像,从本质上认识,是作为提供容器运行所需的程序、库、资源配置的一个文件系统。镜像不保存任何用户动态数据,其内容在构建之后也不会改变。
2.Container(容器)
容器,类似与作为类的镜像所创建的实例,这个依据镜像的模板所创建的实体。容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间。容器内部的进程运行于一个隔离的环境。
3.Repository(仓库)
仓库,类比git的仓库,作为用户上传下载的公共站。在构建完成镜像后,可以轻易在宿主机上运行,但要在其他服务器上使用同个镜像,则需要进行上传、分发,这就是Docker Registry的作用。
更多详情:gitbook/docker_practice
二.安装Docker
Win10
Docker官网下载:Install Docker Desktop on Windows
Docker仅支持Windows 10 Pro且需要开启Hyper-v。
控制面板-程序与功能-启用或关闭Windows功能
请务必确认勾选Hyper-V后再下载Docker安装包。
PS:若无 window 10 Pro 请自行查询激活码或前往某宝搜索。家庭版可凭激活码直接升级专业版无需重装系统。
若成功安装,则应该出现以下界面:
进入下方官网hub.docker.com进行注册登录即可。
登录成功如下图所示:(请忽略已有的镜像)
PS:若安装完成后,在启动过程中遇到Failed to set version to docker-desktop:exit code:-1
会出现以下错误:
可以参考:https://zhuanlan.zhihu.com/p/151392411
因为当时在安装过程中就碰到了这种情况,查了好多资料弄了好久才发现是因为LSP DLL加载到了wsl.exe中才导致WSL 2出现“参考的对象类型不支持尝试的操作”。
至此,安装到此结束,以下将进行环境搭建…
三.Linux发行版镜像下载及相关软件(vim\gcc\gdb)的下载
由于docker官方服务器在国外,所以要通过阿里网易等加速器进行pull镜像。
直接右键运行中的docker进入setting,如下在registry-mirrors一栏后加入地址即可:
Apply并Restart Docker
现在,进入到window终端Terminal:
查看docker 版本:
pull CentOS 镜像:(以CentOS举例,若要pull其他并行版(ubuntu等)请自行更改)
查看目前镜像:
运行当前镜像:
可以看到终端字头已经变成了[root@c5be11115e53/]#了(c5be11115e53为容器id),这意味这镜像已经创建了容器实例,至此已进入容器。
查看容器状态:
接下来将在此容器中安装vim\gcc\gdb等编辑编译调试环境:
直接通过指令安装:
查看vim\gcc\gdb版本(是否成功安装):
至此,vim/gcc/gdb基本环境搭建成功。
但别忘了将保存环境,不然你下次重新打开,此镜像将重置为初始centos镜像(不保存用户动态数据)。
先退出容器,运用commit命令保存镜像环境配置:
其中,-m指定说明信息;-a指定用户信息;85918ed65ed4代表容器的id;***/centos:latest指定目标镜像的用户名、仓库名和 tag 信息。用户名使用注册docker时的id即可。
此后,可以直接启动新创建的镜像:
请自行更换命令中的仓库名及id即可。
若想在宿主机上配置后在其他服务器使用?那就push到docker hub 中:
下次在其他服务器上,直接安装好docker,配置好加速器,登录自己的账号,直接docker pull ***/centos:latest即可把你现在push到docker hub中的镜像pull下来。若需要再更新环境配置,再同理进行push即可。
结语
至此本文已经结束,这只是一篇简单的分享,有错请大佬们及时指正,想要再深入docker及linux环境编程就靠自己啦!
References
https://blog.csdn.net/S_gy_Zetrov/article/details/78164266
https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81044217
https://www.cnblogs.com/ECJTUACM-873284962/
https://blog.csdn.net/weixin_45413689/article/details/111567875