docker简介以及安装

docker官网:https://www.docker.com/

1.docker简介

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

1.什么是docker

1.docker是一个容器平台软件;

2.Docker公司开发、开源、托管在github上

3.跨平台,支持linux、windows、macos 

2.应用场景

Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。

3.优点

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

4.解决问题

1.docker解决了环境不一致:经常看到java依赖外部环境,经常见到的程序员说的我本地没问题啊。比如说JDK8编译的程序放到另一台机器,机器上面的JDK是7就会报最低版本错误。docker迁移就可以解决此问题,在自己的机器如何运行迁移之后就如何运行。

2.docker标准化可以快速扩展、弹性伸缩。

5.docker核心技术

   “镜像”就好比是面向对象中的“类”,“容器”就好比“类”创建的“对象”。在面向对象中,“类”定义了各种属性,“类”可以实例化出多个“对象”;而在Docker中,“镜像”定义了各种配置信息,它可以实例化出多个“容器”。“容器”就是一台可以运行的“虚拟机”。

1.docker镜像Image

docker镜像实际上是文件,文件就肯定存在本地。docker文件机制依赖于linux的联合文件系统(Union File System):它可以把多个目录(也叫分支)内容联合挂载到同一个目录下,而目录的物理位置是分开的。UnionFS允许只读和可读写目录并存,就是说可同时删除和增加内容。如下:(test1看做第一层、test2看做第二层,test就可以看到两个目录的所有文件)

docker简介以及安装

docker的镜像分层如下,Image层是镜像文件,可以是tomcat、jdk、我们的应用程序等等,镜像层是只读的。

docker简介以及安装

2.docker容器

docker的容器实际上就是一个进程,docker的容器层是可读可写的。但是镜像层是只读的,如果我们需要需要镜像层文件的时候,我们实际上是将文件拷贝到容器层,每次找的时候都是从顶层开始找的。

3.docker仓库

我们构建镜像的目的是为了将应用在其他机器运行,所以就需要将镜像推到仓库。这有点类似于git的仓库,可以将代码推到仓库,其他机子随意拉下来。

docker自己提供了仓库,网速比较慢。所以需要用到镜像加速器。

2.windows安装docker

windows下安装的docker实际上是虚拟了一个linux环境,建议还是linux上直接使用docker。

1.下载安装包

win7、win8 等需要利用 docker toolbox 来安装,下载地址

docker简介以及安装

 2.运行安装

   直接全部下一步即可。下载完成桌面出现三个快捷方式。

docker简介以及安装

 3.初始化docker工具

【此时还未进行注册和启动虚拟机,若直接采用系统CMD命令窗口执行docker命令会产生错误。】

打开Docker Quickstart Terminal。然后等待其初始化完成即可(可以关闭窗口)。

docker简介以及安装

补充:我在打开的时候报错windows 正在查找bash.exe。如果想亲自查找文件,请点击“浏览”

原因是我在之前已经安装了git。解决办法:修改下面目标为自己的git地址

docker简介以及安装

 补充:我在再次点击的时候cmd窗口提示looks like something went wrong in step ‘looking for vboxmanage.exe’

原因是DOCKER_TOOLBOX_INStALL_PATH和VBOX_MSI_INSTALL_PATH这两个环境变量并没有生效,虽然你能看到它们,但是程序却看不到它们。你可以打开cmd然后输入set DOCKER_TOOLBOX_INStALL_PATH和set VBOX_MSI_INSTALL_PATH命令查看一下(我查看的时候有值)。解决办法:重启机器。

4.查看版本

C:\Users\Administrator>docker version
Client:
 Version:       18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24302
 Built: Fri Mar 23 08:31:36 2018
 OS/Arch:       windows/amd64
 Experimental:  false
 Orchestrator:  swarm

Server: Docker Engine - Community
 Engine:
  Version:      19.03.5
  API version:  1.40 (minimum version 1.12)
  Go version:   go1.12.12
  Git commit:   633a0ea838
  Built:        Wed Nov 13 07:28:45 2019
  OS/Arch:      linux/amd64
  Experimental: false
 containerd:
  Version:      v1.2.10
  GitCommit:            b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:      1.0.0-rc8+dev
  GitCommit:            3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:      0.18.0
  GitCommit:            fec3683

到此docker安装成功。