什么是docker呢

f9b9b1f24c964a5aa9474c7ab2f35ef6.jpg

     在学习Docker之前我们先来了解一下,它主要是用来解决什么样的问题。

     现在比如说你做了一个web应用,并且在你的本地调试没有出现任何问题,现在你想发给你的朋友看看或者上传到云端。现在首先你是不是得模拟你本地的开发环境,配置相同的软件,比如数据库,web服务器,库还有必要的插件等等。但是即便是如此,你也不确定到了你朋友的电脑上你的这个应用能不能正常的跑起来,因为你的朋友的操作系统可能和你不一样,即使你们同样是使用linux,每种发行版也会有着细微的区别。

      那么现在我们是不是会想到,诶,我可以使用虚拟机呀,但是虚拟机需要模拟硬件,运行整个操作系统,不仅内存占用高,而且部署起来时间还久。这个时候我们就可以用到docker了,它在概念上和虚拟机类似,都是提供完全隔离的运行环境,但是它比虚拟机要轻便,docker不会去模拟硬件,只会去模拟应用开发环境所需要用到的软件,库等。

9669f180d29244428f328c407b86033c.jpg

      Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。

      好,需要理解上面这段话,我们就要了解一下有关docker的几个基本概念。

      1. 镜像(Image):Docker镜像是一个只读的模板,包含了应用程序和其依赖的所有组件。镜像可以用来创建容器,一个镜像可以创建很多容器。镜像是只读的,不能对其进行修改。

Linux镜像可以在Linux、windows的docker中使用

windows镜像只能在windows的docker中使用

82a1f63697e04f1c9bde743b745066e9.jpg

      2. 容器(Container):容器是镜像的运行实例,是一个独立的、可执行的环境,用来运行应用程序。容器可以被启动、开始、停止、删除,每个容器都是相互隔离的,保证安全。

      3. 仓库(Repository):仓库是集中存放镜像文件的场所。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。

a47d3c712312405eb6702643dc4e0cbd.jpg

      容器是完全使用沙箱机制(通过软硬件手段的结合,可以模拟出一个“管控”区域,它的里面是预先指定、划分出来的运算与存储资源,与宿主的其他资源完全隔离),相互之间不会有任何接口。容器之间共用的是主机的内核,但是不会直接访问主机的内核,而是通过docker引擎去访问。

339285d82cea4c30bb997c4f9a09da46.jpg

 

创建Docker容器的两种方式:

1、通过命令直接创建

2、通过dockerfile创建

18fbfa0c4b764d4d813d5a71ef640d8f.jpg

 使用dockerfile和镜像结合创造容器的时候,镜像可以是不完整的,docker会根据dockerfile中的脚本指令进一步完善容器,比如下载缺失的文件或者更改配置,执行完这些指令才算是容器真正创建成功。dockerfile更加灵活一些,但是其容器的创建时间会更长,也比较不稳定。一般更推荐于用第一种,他可以快速部署,尽管它的内存占用会比较大,一般是几个G。

 

以下是一些相关命令:

启动docker:systemctl start docker

停止docker:systemctl stop docker

重启docker:systemctl restart docker

查看docker状态:systemctl status docker

开机启动:systemctl enable docker

查看docker概要信息:docker info

查看docker总体帮助文档:docker --help

查看docker命令帮助文档:docker 具体命令 --help

查看本地容器:docker ps

查看所有容器(包括未运行):docker ps -a

启动容器:docker start<容器ID>

停止容器:docker stop<容器ID>

删除容器:docker rm<容器ID>

进入容器内部:docker exec -it<容器ID>/bin/bash

容器打包成镜像:docker commit -a"作者信息”-m"log信息”<容器ID><目标镜像名称:tag版本>拷贝文件到容器:docker cp<文件目录><容器ID>:<目标目录>

拷贝容器文件到宿主机:docker cp<容器ID>:<文件目录><宿主机目标目录>

更新容器设置:docker update<容器ID><相关设置>

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值