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的镜像分层如下,Image层是镜像文件,可以是tomcat、jdk、我们的应用程序等等,镜像层是只读的。
2.docker容器
docker的容器实际上就是一个进程,docker的容器层是可读可写的。但是镜像层是只读的,如果我们需要需要镜像层文件的时候,我们实际上是将文件拷贝到容器层,每次找的时候都是从顶层开始找的。
3.docker仓库
我们构建镜像的目的是为了将应用在其他机器运行,所以就需要将镜像推到仓库。这有点类似于git的仓库,可以将代码推到仓库,其他机子随意拉下来。
docker自己提供了仓库,网速比较慢。所以需要用到镜像加速器。
2.windows安装docker
windows下安装的docker实际上是虚拟了一个linux环境,建议还是linux上直接使用docker。
1.下载安装包
win7、win8 等需要利用 docker toolbox 来安装,下载地址
2.运行安装
直接全部下一步即可。下载完成桌面出现三个快捷方式。
3.初始化docker工具
【此时还未进行注册和启动虚拟机,若直接采用系统CMD命令窗口执行docker命令会产生错误。】
打开Docker Quickstart Terminal。然后等待其初始化完成即可(可以关闭窗口)。
补充:我在打开的时候报错windows 正在查找bash.exe。如果想亲自查找文件,请点击“浏览”
原因是我在之前已经安装了git。解决办法:修改下面目标为自己的git地址
补充:我在再次点击的时候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安装成功。