Docker

 docker是什么:

    docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中.

 官方解释:

 

 

 

dokcer的思想:

  • 集装箱思想:把货物想象成程序,目前我们要把程序部署到一台新的机器上,可能会启动不起来,比如少一些配置文件什么的或者少了什么数据,有了docker的集装箱可以保证我们的程序不管运行在哪不会缺东西.

  • 标准化:

    1. 运输方式

    docker运输东西有一个超级码头,任何地方需要货物都由鲸鱼先送到超级码头,然后再由鲸鱼从超级码头把货物送到目的地去.对应的技术来说,比如我们要把台式机的应用部署到笔记本上,我们可能选择用QQ发过去或者用U盘拷过去,docker就标准化了这个过程,我们只需在台式机上执行一个docker命令,把鲸鱼派过来,把程序送到超级码头去,再在笔记本上执行一个docker命令,然后由鲸鱼把程序从超级码头送到笔记本上去.

    2. 存储方式

    当我们把程序存储到笔记本上时,我们需要一个目录,且我们要记住这个目录,因为下次我们可能还要修改,有了docker之后我们就不用记住了程序在哪里了,我们使用的时候只需要一条命令就行了.

    3. API接口

    docker提供了一系列rest api的接口,包含了对docker也就是对我们的应用的一个启动停止查看删除等等,如当我们要启动tomcat时我们要执行startup命令,当我们要停止时要执行shutdown命令,如果不是tomcat,我们可能还需要一些别的命令.有了docker我们记docker的命令就可以对其进行操作.

  • 隔离
    我们在使用虚拟机时有自己的cpu,硬盘,内存,完全感觉不到外面主机的存在,docker也差不多,不过它更轻量,我们创建虚拟机可能要几分钟,但是docker只需要一秒.最底层的技术时linux一种内核的限制机制,叫做LXC,LXC是一种轻量级的容器虚拟化技术.最大效率的隔离了进程和资源.通过cgroup,namespace等限制,隔离进程组所使用的物理资源,比如CPU,MEMORY等等,这个机制在7,8年前已经加入到linux内核了,直到2013年docker出世的时候才火起来,大家可能奇怪为什么这么好的技术埋没这么多年都没人发现呢?英雄造时势,时势造英雄,如果没有云计算,敏捷开发,高频度的弹性伸缩需求,没有IT行业这么多年长足的发展,也就没有docker.

Docker的三个重要概念:

  • 镜像:docker 的镜像其实就是模板,跟我们常见的 ISO 镜像类似,是一个样板。

  • 容器:使用镜像所创建的应用或者系统,我们称之为一个容器。

  • 仓库:仓库是存放镜像的地方,分为公开仓库(Public)和私有仓库(Private)两种形式。

端口映射:

 

 

 

 

 

目录挂载:

我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样容器中的某个目录和真机中的某个目录是同一个目录,容器和真机就可以以此为桥梁相互影响。

例如,我们可以创建一个运行 mysql 的容器,将容器中存放数据文件的目录映射到真机中的某个目录。这样,哪怕是该容器被删除了,曾经存储的数据仍然还在。

 

 

 

 

 

 

 

3. docker-compse 方式启动

  • 创建一个docker-compose.yml
version: '3'
services:
  mysql-3306:
    image: mysql:8.0.16
    network_mode: "bridge" # 默认值
    container_name: mysql-3306
    mem_limit: 512m # 限定 docker 容器内存大小
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - /etc/localtime:/etc/localtime:ro  # 时区
      - ~/docker/3306/data:/var/lib/mysql # 数据
      - ~/docker/3306/config/mysql.cnf:/etc/mysql/conf.d/mysql.cnf # 配置
    ports: # network_mode: "host" 无需端口映射
      - "3306:3306"
  •    运行命名:docker-compose up -d mysql-3306,如下画面:成功

 

 

posted @ 2021-12-03 20:40  *山山_而川  阅读(47)  评论(0)    收藏  举报