分享

(1) Docker 简介 | 附入门实例

 小生凡一 2021-11-30

请添加图片描述

Docker







1. 简介


在官网我们可以看到这句

Build safer, share wider, run faster.

docker是一个容器技术,无疑是给了我们很多的便利

便利1: build safer,运行环境保持一致,更快更轻松迁移

  1. 开发的时候,我们在本机测试环境可以运行,但是到生产环境却无法运行。

    比如一个Go的web程序,这里涉及到go、redis、mysql等软件环境。当这些的某一项版本不一致的时候,可能就会导致程序无法运行。Docker则将程序以及使用软件环境直接打包在一起,无论在哪个机器上都保证了环境版本的一致。

便利2:run faster,对进程进行封装隔离,容器与容器之间互不影响,更高效的利用系统资源

  1. 由于服务器其他程序出错,导致自己程序出错

    我们在公司所写的程序,可能会和其他人共用一个服务器,所以我们就要保证我们程序不会被其他程序所影响,这里就要做一个隔离的操作了。Docker是进程的隔离,很好地解决了环境隔离的问题,别人程序不会影响到自己的程序。

便利3: share wider,通过一个镜像可以复制N个环境一致的容器

  1. 公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器

    在没有Docker的情况下,要在几天内部署几十台服务器,这对运维来说是一件非常折磨人的事,而且每台服务器的环境还不一定一样,就会出现各种问题,最后部署地头皮发麻。用Docker的话,我只需要将程序打包到镜像,你要多少台服务,我就给你跑多少容器,极大地提高了部署效率。

2. Docker 与虚拟机区别

在这里插入图片描述


传统虚拟机Docker容器
磁盘占用几个GB到几十个GB左右几十MB到几百MB左右
CPU内存占用虚拟操作系统非常占用CPU和内存Docker引擎占用极低
启动速度(从开机到运行项目)几分钟(从开启容器到运行项目)几秒
安装管理需要专门的运维技术安装、管理方便
应用部署每次部署都费时费力从第二次部署开始轻松简捷
耦合性多个应用服务安装到一起,容易互相影响每个应用服务一个容器,达成隔离
系统依赖需求相同或相似的内核,目前推荐是Linux

我们拿内存举例子

  • 虚拟机是利用Hypervisor去虚拟化内存,整个调用过程是虚拟内存->虚拟物理内存->真正物理内存

  • Docker是利用Docker Engine去调用宿主的的资源,这时候过程是虚拟内存->真正物理内存

3. Docker 核心架构

  • 镜像: 一个镜像代表一个应用环境,他是一个只读的文件,如 mysql镜像,redis镜像,nginx镜像等

  • 容器: 镜像每次运行之后就是产生一个容器,就是正在运行的镜像,特点就是可读可写

  • 仓库:用来存放镜像的位置,是镜像下载和上传的位置

  • dockerFile:docker生成镜像配置文件,用来书写自定义镜像的一些配置

  • tar:一个对镜像打包的文件,日后可以还原成镜像
    在这里插入图片描述

4. Docker 换源

我们知道docker默认不是国内的镜像源的,所以我们要换一个国内源头。

  • ubuntu

sudo vim /etc/docker/daemon.json(如果不存在则创建)

填入一下内容

{
    "registry-mirrors":[
         "http://docker.mirrors.ustc.edu.cn",         "http://hub-mirror.c.163.com",         "http://registry."
    ] ,    "insecure-registries":[
       "docker.mirrors.ustc.edu.cn",         "registry."
    ]}

重启服务

service restart docker
  • window

在这里插入图片描述

在这里换源

在这里插入图片描述

然后重启服务
在这里插入图片描述

5. 简单例子

docker run hello-world

在这里插入图片描述
当我们运行这条命令的时候,这里会显示本地没有这个镜像,就会去拉取这个镜像

在这里插入图片描述
然后就成功运行了

  • 查看本地的镜像

docker images

在这里插入图片描述

  • 查看容器运行情况

docker ps -a

在这里插入图片描述

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多