一分钟带你理解docker,并教你在自己电脑上安装docker环境。

一分钟带你理解docker,并教你在自己电脑上安装docker环境。

为什么要安装docker?

首先我们需要明白一点:我们为什么要安装docker,我这里给同学们举个例子:如说,你们公司开发了很多项目。去年开发的Java项目用的是JDK1.8和Maria DB数据库,已经部署在Linux上面了。今年开发的项目用的是JDK15和MySQL数据库,现在要把这个项目也部署在同一个Linux系统之上,那就非常困难。因为MySQL和MariaDB的程序包有冲突,在同一个Linux系统中只能安装其中一个数据库,要么是MySQL要么是MariaDB。还有JDK1.8和JDK15,你怎么给系统设置两个Java环境变量?所以我们就需要引入Docker环境。

Docker原理

往简单了说,Docker是个沙箱环境。你可以创建很多个沙箱空间,然后在每个沙箱中部署不同的程序。比如沙箱A里面部署MySQL,沙箱B中部署MariaD8。沙箱之间是物理隔绝的,只有网络可以联通,所以MariaDB和MySQL程序包的冲突,在Docker中完全体现不出来。

因为Docker环境给每个沙箱都创建了虚拟网卡,所以每个沙箱都有自己的内网IP地址,沙箱之间可以通过网络相互调用,这就能搭建数据库集群或者部署项目了。沙箱的内网IP在Docker环境之外是无法访问的,所以等我们创建沙箱的时候,需要把沙箱的某个端口映射到Linux系统的某个端口,这样在Docker之外才能用网络访问Docker容器里面的程序。

镜像和容器

Docker为了最大化的共享资源,减少资源浪费,创造出了镜像技术。镜像是沙箱之间相同的部分,差异化的部分叫做容器。比如说一个Java镜像,里面安装了JDK1.8,然后我为这个镜像创建出2个容器,这两个容器共享使用JDK镜像中的Java环境,并且我可以在每个容器中部署不同的Java程序。如果Docker没有镜像技术,我们只能分别在两个容器中安装JDK环境,这就造成了不必要的重复浪费。

创建Docker镜像的方式有多种,比如说你把要安装的程序和脚本写成Dockerfile文件,然后执行特殊的命令Docker就会按照你的要求创建出镜像。或者说你利用现有的容器,在里面安装程序写好脚本,然后把这个容器逆向创建出镜像也可以。甚至说你不想自己创建镜像,也可以去DockerHub网站上下载别人创建的镜像。比如MySQL镜像、HBase镜像、JDK镜像、Python镜像等等。你把镜像下载下来,导入Docker环境,然后创建容器就可以使用MySQL、HBase这些东西了,特别节省时间。

程序运行在容器中,性能有没有损失?

Docker创建的沙箱是轻量级的,只给容器创建了虚拟网卡,所以对Linux系统开销非常小。在容器中运行程序跟在Linux同直接运行程序没有差别,性能也没有任何损失,所以你可以放心使用Docker环境。现实中,一台硬件服务器同时运行几百个容器也没有问题。即便2GB内存的低端云主机,运行十几个容器也能撑得下来。

为什么要使用虚拟机?

虽然Windows和Mac0S系统都可以直接安装Docker,但是这种Docker是割版的,并不能发挥出Docker全部功能。例如不支持虚拟IP,HBase也存在运行问题,所以强烈建议大家在虚拟机上安装Docker.

这里我建议大家安装VirtualBox虚拟机,免费使用,而且BUG很少,不像VMware虚拟机到处都是BUG,例如SSH连接上传文件会出现断连和丢包等等。大家可以到VirtualBox官网(www.virtualbox.org/wiki/Downlo...%25E4%25B8%258B%25E8%25BD%25BD%25E8%25BF%2599%25E4%25B8%25AA%25E8%2599%259A%25E6%258B%259F%25E6%259C%25BA%25E7%259A%2584%25E5%25AE%2589%25E8%25A3%2585%25E6%2596%2587%25E4%25BB%25B6%25E3%2580%2582 "https://www.virtualbox.org/wiki/Downloads)%E4%B8%8B%E8%BD%BD%E8%BF%99%E4%B8%AA%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%87%E4%BB%B6%E3%80%82")

利用虚拟机安装Linux系统

VirualBox虚拟机安装比较简单,基本上就是选择默认选项就可以了。Windows系统安装VirtualBox的过程中会弹出安装虚拟网卡驱动的弹窗,你选择同意就可以了。

Linux系统我选择的是CentOS7,是众多开源免费Linux发行版当中最适合用在服务器上面的,既安全又稳定。安装文件已经放在公众号中了。大家关注公众号,回复关键字【centos】就可以获取了。

1、创建虚拟主机

在安装Linux系统之前,我们要先创建出虚拟化主机,设置好硬件参数,我们才能安装CentOS系统

2、使用NAT网络

这里我建议大家选择NAT网络模式,虽然不如桥接网络功能强大,但是却能胜任校园网和上班族的需要。点击虚拟机上的设置按钮。

3、端口转发

因为我们把虚拟机的连接模式设置成NAT的话,我们虚拟机就没有独立的IP地址了,就需要使用我们自己电脑的IP地址进行上网,所以将来我们需要使用的一些Linux的端口,就需要映射到我们自己的电脑上才行。比如,很常见的来进行远程SSH连接的22端口,所以我们需要把Linux上的22端口,映射到我们本地电脑的一个端口上才行,我们这里映射到本地电脑的5022端口上,

这样我们访问我们自己电脑的5022端口,就可以访问Linux的22端口了。一会儿我用SSH客户端软件访问我们电脑上的5022端 口,就能连接到Linux系统了。

  • 主机端口:就是我们自己电脑上的端口
  • 子系统端口:这里是我们的Linux系统上的端口
4、插入CentOS镜像文件

选择存储,然后点击没有盘片选项,接下来在右侧点击光盘图标,弹出的选项,我们选择第二个。然后找到我们课程资料里的CentOs镜像文件。然后我们点击启动按钮,启动虚拟机

这时候就会进入正式的安装环节了。他会自动弹出一个新的命令行窗口,我们可以把鼠标点进去,如果想把鼠标从这个窗口里移动出来,需要按下快捷键ctr,mac上是command键,然后我们选择安装选项的第一个install CenOS 7,然后按回车键确定。稍等一会虚拟机就会开始读取CentSO镜像文件里的内容了。

这时候会出现一个图形化的安装界面

我们这里语言选择中文,点击右下角的继续按钮,

这时候我们选择系统里的 安装位置,我们点进去,然后什么都不要改,再直接点击上方的完成按钮就行了

完成磁盘默认分区之后,我们再设置下网络连接,

我们点击打开按钮,把网络打开就行了,然后点击上面的完成按钮。

我们再点击右下角的开始安装按钮就行了。这时候会进入安装的界面。

在进行安装的时候,我们去设置下root用户的密码,

我自己这里设置的是root123,大家一定要记住这里设置的密码,到时候我们进行ssh连接的时候,会需要用到,接下来就等着安装完成就行了。

安装完成后,我们点击下面的重启按钮,什么都不要操作。等一会儿,它会自己重新运行虚拟机。然后出现下面这个画面。

我们输入刚刚创建的root用户名和密码就可以进行连接了。

出现这个界面,说明我们的Linux系统已经全部安装完成了。如果你想关闭掉这个Linux系统,直接把窗口关掉就行。

远程连接Linux系统

我们安装好了Linux系统之后,再通过远程命令行的方式来操控Linux系统。可能你平时习惯用图形化的远程桌面操控Windows系统,但是我们安装的Cent0s系统并没有外挂任何GUI图形界面,所以只能用命令行的方式去操控。去掉了GUI图形界面,Linux系统变得更稳定,占用系统资源更小,更适合高并发、高负载的环境。

ssh工具推荐

Windows系统上面,我们可以使用免费的MobaXterm工具连接Linux的SSH服务,mac上我们可以使用electerm工具连接Linux的SSH服务。

连接远程连接

新建远程连接的时候,我们选择SSH方式,然后填写上连接信息。因为虚拟主机的网卡是NAT模式,所以我们填写localhost和5022端口,就能连接上Linux系统了。填写的用户名是root,密码是你在安装linux系统的时候设置的密码。

安装docker环境

关闭SELINUX服务

SELINUX是Centos自带的安全服务,因为晦涩难用,并且跟很多程序冲突,所以强烈建议大家关闭这个服务.找到 /etc/sysconfig/selinux 文件,把其中的 SELINUX 设置为 disabled ,保存文件之后重启CentOS系统。

安装docker

yum install docker -y

启动docker服务

sql 复制代码
service docker start

查看docker下的镜像文件

docker images

查看docker下的容器

docker ps

删除docker镜像

docker rmi 镜像名字

关闭docker服务

arduino 复制代码
service docker stop

运行容器

sql 复制代码
docker start 容器的ID/名称
docker start phoenix
docker start f03cf22f0309072fa0778396d3dc761ae77b0ed0ee5a521ac65f040eac7e2c0a 
  • phoenix 是容器的名字。
  • f03cf22f0309072fa0778396d3dc761ae77b0ed0ee5a521ac65f040eac7e2c0a 是容器的ID。

结语

到这里整个docker环境就全部安装完成了,之后你就可以在docker上安装各种容器,镜像,快乐的进行开发与学习工作了。

相关推荐
2401_854391087 分钟前
城镇住房保障:SpringBoot系统功能概览
java·spring boot·后端
陈随易12 分钟前
兔小巢收费引发的论坛调研Node和Deno有感
前端·后端·程序员
聪明的墨菲特i17 分钟前
Django前后端分离基本流程
后端·python·django·web3
速盾cdn33 分钟前
速盾:vue的cdn是干嘛的?
服务器·前端·网络
安於宿命38 分钟前
【Linux】简易版shell
linux·运维·服务器
丶Darling.41 分钟前
MIT 6.S081 Lab1: Xv6 and Unix utilities翻译
服务器·unix·lab·mit 6.s081·英文翻译中文
追梦不止~1 小时前
Docker常用命令+详解
运维·docker·容器
黄小耶@1 小时前
linux常见命令
linux·运维·服务器
hlsd#1 小时前
go mod 依赖管理
开发语言·后端·golang
陈大爷(有低保)1 小时前
三层架构和MVC以及它们的融合
后端·mvc