docker简介-创建nginx镜像和启动容器

docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

以上是百度百科的介绍,关键的地方有容器,虚拟化。

容器

大家在开发的过程中很可能会遇到这样的情况,一个同事在自己的电脑上开发完成之后,到另一个同事的电脑运行不了,这里很大可能是不同电脑的配置环境不一致导致的,这样极大地影响开发效率,而docker容器就可以解决这个问题,开发完成之后的可以把应用打包成一个镜像,因为这个镜像包好自己运行所需要的环境,因此在其他的电脑也是可以运行的。

上面那段话提到了镜像和容器,那两者的区别是什么呢?

他们两者的关系和程序里面的类和对象一样;其中镜像就像程序里面的类、容器就像程序里面的对象。所以镜像就是定义了一个可以移植、运行的包,容器就是在将该镜像运行了起来,当下载一个镜像之后,可以运行多个一样的容器。

虚拟化

作为一名开发者,很多人都应该和虚拟机打过交道;一般流程:先要装vmare或者virtulBox工具,然后在工具里面装上相应的系统,实现了虚拟化。但是都知道用这样的一种方式去实现虚拟化是非常地耗内存和吃资源的,一般在系统里面装不了几个虚拟机,卡顿不可避免。而容器技术呢,相对于虚拟机技术它本身的体积非常的小,只保留核心的东西,并且它的底层实现也是不一样。如下:

在这里插入图片描述

图1 VM和Containers技术对比

其中左边的图就是虚拟机技术,它在操作系统的基础上通过Hyper虚拟化成一个个GuestOS,而GuestOS也是一种操作系统,因此它在本身宿主机原有的基础上又重新为每一个虚拟机虚拟了对应的一套虚拟硬件系统,所以本身非常的笨重。而容器技术通过一个Docker Engine和操作系统建立连接,并且该引擎被所有的容器共享,因此相当没有经过更多的抽象,因此其体积更小,运行更快。

经过对比docker是更加优秀的。

docker的运行原理:

如下图所示,docker采用C/S架构,使用socket实现客户端和服务端通信的,其中的daemon是docker守护进程,客户端输入命令就是通过守护进行和服务端打交道,包括(创建,运行,分发容器等请求)。

img

图2 docker工作原理

Docker常见的命令

例子:创建ngnix镜像和启动容器

# 镜像查询 nginx
docker search nginx

在这里插入图片描述

# 镜像拉取 如nginx
docker pull nginx

在这里插入图片描述

# 查看镜像
docker images

在这里插入图片描述

# 创建容器,运行容器,后台运行,命名,端口映射
docker run -d --name nginx02 -p 3343:80 nginx

在这里插入图片描述

# 进入容器
docker exec -it nginx02 /bin/bash

# 退出容器
exit

在这里插入图片描述

# 查看运行中的容器
docker ps

在这里插入图片描述

# 创建容器之后,停止nginx02容器
docker stop nginx02
# 启动已存在容器nginx02
docker start nginx02

在创建容器时,进行了端口映射:将宿主机的3343端口映射到了容器nginx02的80端口,现在就可在网页可以访问容器啦。

# 网页输入
http://localhost:3343

如下,可以在浏览器看到如下展示:
在这里插入图片描述

结束语

以上就是docker的简单介绍,可以下载安装练习一下,应该算是开发者的必备技能啦。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值