企业—Docker简介及其部署及应用(下载本地镜像和创建容器)

一.Docker简介

1.Docker简介

Docker是2013发起的一个项目,早在2013年,Docker自诞生起,就是整个技术界的明星项目,当时我还在上海实习,就在各种技术媒体上看到了Docker的介绍文章,很多技术媒体宣称docker是一项技术突破,并且是一次技术革命,可惜当时由于本身是一个Android Framework开发者,眼界很低,对于这种OS虚拟化技术有点不屑一顾,而今转后台后才发现这项技术的重要性

2.Docker的特征

Docker是一个云开源项目,托管在github,任何人都可以通过 git clone 或者fork参与进来,本身是基于linux的容器技术,采用当时如日中天google新推出的Go语言实现。采用apache 2.0协议开源。

3.Docker的目标

Docker的是一个轻量级的操作系统虚拟化解决方案。 主要目标,用官网的概括来说就是“Build,Ship and Run Any App,Anywhere”:编译,装载任何App,在任何地方都可以运行,我们大概理解就是一个容器,实现了对应用的封装,部署,运行等生命周期管理,只要在glibc的环境下,到处都可以运行。

4.docker容器

在docker中,我们重点关注的就是镜像和容器了。因为在实际应用中,我们封装好镜像,然后通过镜像来创建容器,在容器运行我们的应用就好了。

在这里插入图片描述
该图显示Docker虚拟化的架构:其中Docker Engine可以简单看成对Linux的NameSpace、Cgroup、镜像管理文件系统操作的封装。Docker并没有和虚拟机一样利用一个完全独立的Guest OS实现环境隔离,它利用的是目前linux内核本身支持的容器方式实现资源和环境隔离。简单的说,Docker是利用namespace实现系统环境的隔离;利用Cgroup实现资源限制;利用镜像实现根目录环境的隔离。

4.docker的俩个重要概念

镜像(Images):
Docker镜像是一个只读的模板。包含了容器运行时所需要的文件系统和一些参数。镜像是无状态的,也不会改变。镜像是用来创建容器的。你可以使用docker pull命令获取一个别人已创建好的镜像,或者使用dockerbuild来构建一个自己的镜像。

容器(Containers):
Docker容器就像是一个文件夹,容器中包含了应用运行所需的一切。每个容器都是一个隔离的和安全的应用平台。容器是镜像的一个实例,它是有状态的,而且随时会改变,容器一般是短暂的。

5.docker的优缺点

Docker优点:
1、Docker提供隔离的运行环境
文件系统隔离
网络隔离
进程号隔离
进程间通信隔离

2、容器性能开销极低
Docker技术虽然是虚拟化技术,却几乎不消耗除容器中的应用程序外的其他资源,可以达到近乎裸机的运行能力,达到秒级/微秒级的部署,一台实体机可以运行几百甚至上千个docker容器。

3、容易移植
有很高的移植性,可以在任何平台运行(包括物理机、虚拟机、云平台)。
过去需要用数天乃至数周的环境移植任务,在Docker容器的处理下,只需要数秒就能完成。

docker的缺点:
1、Docker容器受到的资源限制
CPU计算资源
内存资源
磁盘I/O资源等

6.docker的应用场景

1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些突。

比如IIS和Apache访问端口冲突。

这个时候你就要隔离.net开发的网站和php开发的网站。

常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。

docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。

7.关于跨平台

1.docker适用于Linux平台(仅适用),但是又能在windows和OS X mac等系统上安装,为什么呢?

  • 其实docker并没有跨平台,它运行依赖Linux内核,在OS X和windows运行docker会先产生一个Linux虚拟机。至于所谓的跨平台,其实添加了一层间接,如java,运行在不同的os中的jvm上,而不是直接在os里运行。
  • docker如VM,image就是你装vm虚拟机时的iso文件,容器就是正在vm中运行的虚拟机,这个虚拟机可以备份为一个vmdk文件,在其它vm中运行。现在win和mac都可以体验docker了,可以装来玩玩,写dockerfile才是docker的重点。
  • 对 Docker 最简单并且带有一定错误的认知就是 “Docker 是一种性能非常好的虚拟机”。Docker 相比于传统虚拟机的技术来说先进了不少,具体表现在 Docker 不是在宿主机上虚拟出一套硬件后再虚拟出一个操作系统,而是让 Docker 容器里面的进程直接运行在宿主机上(Docker 会做文件、网络等的隔离),这样一来 Docker 会 “体积更轻、跑的更快、同宿主机下可创建的个数更多”。

二.Docker部署

Docker是默认支持linux64KB的环境系统,不支持linux32KB的环境系统的,因此内核的版本必须在3.0版本以上。

1.官网下载安装docker时所需要的安装包

在这里插入图片描述
2.docker的安装
在这里插入图片描述
在这里插入图片描述
3.开启docker服务并且查看
在这里插入图片描述
在这里插入图片描述
注意:如果没有docker的相应补全命令,可以下载bash-*

三.简单应用

1.下载game2048.tar的镜像,并且在本地进行导入镜像
在这里插入图片描述
2.使用docker下载到本地的镜像game2048创建容器

[root@server1 ~]# docker run -d -p 80:80 --name vm1 game2048  ##使用该镜像建立容器,添加端口映射,及本机的80端口映射容器内部的80端口
[root@server1 ~]# docker ps   ##查看可用容器
[root@server1 ~]# docker ps  -a  ##查看所有容器
[root@server1 ~]# docker inspect vm1  ##查看容器状态

在这里插入图片描述
在这里插入图片描述
3.在浏览器上查看
在这里插入图片描述

四.docker常用命令

docker load -i  game2048.tar 导入镜像
docker run -d -p 80:80 --name vm1 game2048 创建容器,其中以game2048为镜像,添加端口映射
docker ps  ##查看可用容器
docker ps -a 查看所有容器,包括可用的和没有正常退出容器导致容器不可用的
docker attach vm1  进入容器
docker top vm1 查看容器进程
docker logs vm1 查看容器指令输出
docker inspect vm1 查看容器详细信息
docker status vm1  查看容器的资源使用率
docker diff vm1  查看容器的修改
docker stop vm1   停止容器  
docker start  vm1  启动容器
docker kill  vm1  强制停止容器
docker rm -f  vm1 删除容器,后面也可直接输入容器id
docker rmi  删除镜像

ctrl+pq   结束docker与内核的交互式界面,但不停止容器,在后台运行的
ctrl+d   直接结束容器,释放内存,但是镜像还在,只是在可用容器里面查不到,但是在所有容器里面还是可以查看到容器信息的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值