java学习第18步——Docker镜像

Docker管理镜像的一个工具软件

  • 1 简介(3个小时搞定)
    • 1.1 Docker介绍
    • 1.2 解决2个问题(开发时依赖的包版本不一致,软件不一致)
  • 2 Docker和虚拟机
  • 3 Docker镜像和容器(镜像就是1个压缩文件,Docker软件可以来操作它,实际上容器就是镜像,我们为了区分,习惯把运行起来的镜像叫做容器)
  • 4 Docker是一个软件,安装这个软件操作镜像(跟git非常相似)
    • 4.1 安装Docker软件
    • 4.2 Docker软件操作镜像(几个主要的命令,docker软件可以构建多个镜像)
    • 4.3 DockerHub远程仓库和私有仓库(存储镜像的仓库)
      • 4.3.1 远程仓库
      • 4.3.2 私有仓库
      • 4.3.2.1 安装本地仓库
      • 4.3.2.2 使用本地仓库
    • 4.4 Docker操作容器
      • 4.4.1 Docker运行容器
      • 4.4.2 Docker修改容器
    • 4.5 Docker操作数据卷(数据卷就是1个目录)
    • 4.6 挂载
  • 5 制作镜像(很简单,就是1个配置文件和几个命令行)
    • 5.1 Dockerfile来构建镜像
  • 6 DockerCompose(Docker高级了,也是1个软件,可以构建多个镜像并运行)
  • 7 总结(就是1个docker软件操作镜像和容器的20个左右命令)
  • 8 参考文献

1 简介(3个小时搞定)

1.1 Docker介绍

Docker不是镜像,docker是来操作镜像的软件,比如ps(docker)是1个软件,用来操作.psd这种格式的图像(镜像)。
docker管理镜像,在docker软件中执行镜像可以实现不同软件依赖冲突的问题。

java学习第18步——Docker镜像_第1张图片
java学习第18步——Docker镜像_第2张图片

1.2 解决2个问题(开发时依赖的包版本不一致,软件不一致)

java学习第18步——Docker镜像_第3张图片

  • 要解决的问题,比如你在window8上的软件,按了windows10上可能不能用。
  • 在linux系统中也是一样,不论是ubuntu还是centos都是基于linux内核开发的,linux系统的内核都是一样的,在ubuntu上的应用程序不一定能在centos上运行。
  • 不同程序运行时依赖包等容易产生冲突。比如有的是jdk8,有的是jdk17运行的,运行jar包的时候会产生错误,当然应该也可以在服务器上把jdk8和jdk18都安装上,运行的时候指定用哪个jdk运行jar包,但是这样这个问题解决了,可能其它也会出现问题,一个一个解决很麻烦。
    java学习第18步——Docker镜像_第4张图片

java学习第18步——Docker镜像_第5张图片

2 Docker和虚拟机

java学习第18步——Docker镜像_第6张图片
java学习第18步——Docker镜像_第7张图片

java学习第18步——Docker镜像_第8张图片

3 Docker镜像和容器(镜像就是1个压缩文件,Docker软件可以来操作它,实际上容器就是镜像,我们为了区分,习惯把运行起来的镜像叫做容器)

java学习第18步——Docker镜像_第9张图片
java学习第18步——Docker镜像_第10张图片

4 Docker是一个软件,安装这个软件操作镜像(跟git非常相似)

4.1 安装Docker软件

很简单,几个命令

4.2 Docker软件操作镜像(几个主要的命令,docker软件可以构建多个镜像)

java学习第18步——Docker镜像_第11张图片
java学习第18步——Docker镜像_第12张图片
java学习第18步——Docker镜像_第13张图片

java学习第18步——Docker镜像_第14张图片

4.3 DockerHub远程仓库和私有仓库(存储镜像的仓库)

电脑按了docker以后,这个软件就可以管理本地文件夹中的镜像,但是不叫本地仓库,它还是没有秩序的。
本地仓库需要安装仓库软件,有秩序的存储镜像,比如一个公司大家公用这个;
远程镜像仓库就是远程的,全世界共用等。

4.3.1 远程仓库

这是1个公用的dockerhub镜像网站,就跟github一样,github存放代码,DockerHub存放镜像

java学习第18步——Docker镜像_第15张图片

4.3.2 私有仓库

4.3.2.1 安装本地仓库

就1行命令,比较简单
java学习第18步——Docker镜像_第16张图片

4.3.2.2 使用本地仓库

java学习第18步——Docker镜像_第17张图片

4.4 Docker操作容器

java学习第18步——Docker镜像_第18张图片

4.4.1 Docker运行容器

java学习第18步——Docker镜像_第19张图片
java学习第18步——Docker镜像_第20张图片

4.4.2 Docker修改容器

java学习第18步——Docker镜像_第21张图片
java学习第18步——Docker镜像_第22张图片

java学习第18步——Docker镜像_第23张图片

4.5 Docker操作数据卷(数据卷就是1个目录)

java学习第18步——Docker镜像_第24张图片
java学习第18步——Docker镜像_第25张图片

java学习第18步——Docker镜像_第26张图片
java学习第18步——Docker镜像_第27张图片
java学习第18步——Docker镜像_第28张图片
java学习第18步——Docker镜像_第29张图片
java学习第18步——Docker镜像_第30张图片

java学习第18步——Docker镜像_第31张图片
java学习第18步——Docker镜像_第32张图片
java学习第18步——Docker镜像_第33张图片

java学习第18步——Docker镜像_第34张图片

4.6 挂载

Docker中的数据卷挂载,数据卷本身就是一个本机的文件目录,数据卷挂载指的是数据卷要挂到哪里,也就是数据卷代替容器的哪里,也就是本机目录挂载到(链接到)容器的哪里。

linux中的挂载 挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。linux中一切都是文件,硬件也是文件,将这个文件链接到linux的某一文件。就是把硬件挂到1个文件夹上,就叫挂载,比如把鼠标挂到1个文件夹上。
什么是挂载,Linux挂载详解

5 制作镜像(很简单,就是1个配置文件和几个命令行)

在这里插入图片描述

java学习第18步——Docker镜像_第35张图片

java学习第18步——Docker镜像_第36张图片

5.1 Dockerfile来构建镜像

java学习第18步——Docker镜像_第37张图片

java学习第18步——Docker镜像_第38张图片
java学习第18步——Docker镜像_第39张图片
java学习第18步——Docker镜像_第40张图片
java学习第18步——Docker镜像_第41张图片
java学习第18步——Docker镜像_第42张图片

6 DockerCompose(Docker高级了,也是1个软件,可以构建多个镜像并运行)

java学习第18步——Docker镜像_第43张图片

7 总结(就是1个docker软件操作镜像和容器的20个左右命令)

  • 1 Docker就是1个软件(不是镜像,镜像是它的一个产品),两个主要功能,管理镜像和容器。在Docker软件中执行镜像可以实现不同软件依赖冲突的问题。
    学习Docker掌握6个内容:1制作镜像 2 管理镜像 3 管理容器 4管理数据卷 5操作远程和私有仓库 6使用DockerCompose进行集群部署,这个比较难,可以先不用学。
  • 2 镜像就是1个按固定规则得到的压缩包,镜像和容器是1个东西,我们习惯于把运行起来的镜像叫做容器;
  • 3 制作1个镜像,使用Dockerfile文件来构建,这个文件是我们自己写
  • 4 Docker管理镜像就是下面的7个命令
  • java学习第18步——Docker镜像_第44张图片
  • 5 Docker管理容器就是下面的5个命令
    java学习第18步——Docker镜像_第45张图片
    java学习第18步——Docker镜像_第46张图片
  • 6 Docker运行容器的时候可以指定链接目录,也就是数据卷,可以起到配置文件的作用,执行容器更加灵活(5个命令)
    java学习第18步——Docker镜像_第47张图片
  • 7 Docker仓库操作,跟git类似,有远程镜像仓库,也可以自己安装1个本地仓库,比如gitlab。
  • 8 Docker很简单,记住它是一个软件,镜像和容器是它的产品,Docker来操作这两个东西。

8 参考文献

  • 1Docker学习,黑马程序员的java课程中专门有这个讲解
  • 2 什么是docker镜像? - 知乎
  • 3 Docker 镜像及容器命令 - 天才卧龙 - 博客园

你可能感兴趣的:(java,docker,java)