1. Docker前言
Docker是近几年的趋势,无论是在各大云平台厂商还是公司项目中,哪怕是对开发模式的改变都起到了至关重要的的作用,所以很有必要系统的学习一下。
2. Linux由来与发展
由于Docker是基于Linux系统所以很有必要对Linux的由来与发展做一个简单的阐述。
-
Unix由来
早期在二战期间贝尔实验室中组织了很多科学家开发的一个项目也就是UNIX的前身,其中有个参与者是Ken,在后来项目夭折之后,Ken为了不让大家的心血付诸东流决定自己要去完成这个项目,在此前提下开发出了B语言,基于B语言完成的项目就是UNIX,但是这是的UNIX是不完善的,再后来他遇到了另外一个大神Dennis(C语言之父),两人共同开发了C语言,再C语言的基础上重写了UNIX,至此UNIX产生。
-
Linux由来
UNIX虽然很强大就像现在很多大型企业依然对它爱不释手,但是它有自己的缺陷,它需要高配置的PC作为支撑,而且基于UNIX的很多系统是需要昂贵花费的,这样就把很多小企业和自由开发这拒之门外了。
后来出现了一个黑客Stallman提出了一个概念GNU(革奴计划),大概主张是在自由的年代用户应该享有系统的免费使用权和源代码的查阅,这时候出现了响应者芬兰的一个大学生Linus,用了大概7000代码以UNIX为原型开发出了Linux系统内核。至此Linux产生。
-
各种Linux系统的关系
对于像我这样对Linux没有接触过的小白来说,会被各种Linux系统的名称搞的晕头转向的,大体上系统的构成规则如下图,不同的Linux系统/发行版本是按照此规则基于开源的Linux内核而产生的产物。
常见的Linux发行版本如下
CentOS https://www.centos.org/
Ubuntu https://ubuntu.com/index_kylin
Redhat https://www.redhat.com/en
红旗
3. 基于Windows安装Ubuntu
如果是在本地Windows系统上安装Docker,不要直接安装Docker 的Windows版本(再Windows上直接装需要开启Hyper V feature,会对上网有影响,总是需要切换网卡),推荐方式在Windows上安装虚拟机来进行联系操作如下步骤:
-
前期准备
进入BIOS》Advance》Virtual Technology => true
下载相关Virtual Box,Ubuntu Image,Putty/ Pscp,这里说明一下没有VMware是因为VMware功能更强大,面向企业级,对于个人应用来说Virtual Box似乎更合适。
Virtual Box: https://www.virtualbox.org
Ubuntu Desktop Image: https://ubuntu.com/index_kylin#download
Putty/Pscp: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
-
安装步骤
安装Virtual Box,默认安装足以,在Virtual Box Home下Click New
执行如下命令给root用户指定password并切换至root
至此安装过程结束并成功登陆到Linux
-
利用Putty Client连接到Linux Server
首先Linux 是多用户系统平台,是可以多用户/客户端同时访问同一Linux的,特别是在实际应用中我们是不可能直接操作于Linux Server本身的机器的,所以掌握如何使用Client进行连接Linux就是必须技能了。
首先需要打开你刚刚创建的虚拟机的设置,如下图,点击Port Forwarding button然后添加映射规则,这里有个知识点,桥接模式于NAT模式。桥接模式是你的虚拟机的网段是和你的母机的网段在同一个网段(0~255),可以相互访问也能连接外网,不过缺点是对多是253个。NAT模式是你的虚拟机网段和你的母机的网段不在同一个网段,所以不能相互访问,如果想要访问需要添加映射规则。
上述映射配置保存之后,登陆你的账户进入Linux系统,执行sudo apt-get install openssh-server 命令安装SSH服务,执行sudo service sshd start 命令来开启SSH服务。
接下来打开你本机上安装的Putty 客户端,输入你的Host/IP + Port 进行连接,连接之后会打开终端,输入对应的用户名/密码即可远程登陆。
至此已经完成了终端的远程登陆,不过我们很多时候是不需要输入用户/密码就可以登陆的,这时候就需要先打开PuttyGen,生成一对密匙如下图,一定要把生成的公钥也就是红色标线出的值原封不动的保存到一个文件中(公钥文件),然后点击Save private key保存私钥到你PC的某处。
这时利用CMD窗口并切换这pscp.exe所在的文件夹(或者直接把你的pscp.exe所在的路径加入到Path路径),执行指令 pscp 保存公钥的文件名 用户@虚拟机IP:/文件夹 上传指定文件到指定虚拟机文件夹。
我的指令如下 pscp -P 2222 public root@127.0.0.1:/home
这时候在你的虚拟机的终端中查看文件是否上传成功
选中输出出来的value右键选择copy,执行指令 vim /.ssh/authorized_keys 创建文件,输入i进入编辑模式,右键paste粘贴之前copy的value,之后esc退出到普通模式,输入:wq 进入命令模式保存并退出。
使用vim或gedit指令修改 /etc/ssh/sshd_config文件, gedit /etc/ssh/sshd_config 修改如下的属性
StrictModes no
AuthorizedKeysFile ~/.ssh/authorized_keys
PasswordAuthentication yes
保存并退出
打开Putty Client,配置login user和private key,点击open
这样就可以直接连接上Linux Server而不需要输入username/password 进行验证。至此环境准备完成。