admin管理员组

文章数量:1588254

在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进行注册登录即可。
登录成功如下图所示:(请忽略已有的镜像)

PS:若安装完成后,在启动过程中遇到Failed to set version to docker-desktop:exit code:-1
会出现以下错误:

可以参考:https://zhuanlan.zhihu/p/151392411
因为当时在安装过程中就碰到了这种情况,查了好多资料弄了好久才发现是因为LSP DLL加载到了wsl.exe中才导致WSL 2出现“参考的对象类型不支持尝试的操作”。

至此,安装到此结束,以下将进行环境搭建…

三.Linux发行版镜像下载及c相关环境(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基本环境搭建成功。
但别忘了保存环境,不然你下次重新run镜像,此镜像不保存用户动态数据(安装的环境)。
先退出容器,运用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/S_gy_Zetrov/article/details/78164266
https://blog.csdn/bskfnvjtlyzmv867/article/details/81044217
https://wwwblogs/ECJTUACM-873284962/
https://blog.csdn/weixin_45413689/article/details/111567875

本文标签: 环境DockerWindowsLinux