文章目录

  • 自制思维导图
  • 为什么用Docker?
  • Docker理念
  • 为什么Docker比虚拟机快?
  • Docker组成
  • 镜像原理
  • 容器数据卷
  • DockerFile
  • 本地镜像发布到阿里云逻辑图


自制思维导图

docker好用么 docker很难吗_docker好用么

为什么用Docker?

代码在不同的环境和配置下,可能出错。

开发人员和运维人员之间的矛盾。

docker好用么 docker很难吗_数据_02

docker好用么 docker很难吗_docker_03


以前提交代码,现在提交镜像

以前搬家,现在搬楼。

Docker理念

Docker是由Go语言实现的云开源项目。

docker理念,一次构建,处处运行。

docker好用么 docker很难吗_Docker_04


虚拟机缺点

1.资源占用多

2.冗余步骤多

3.启动慢

docker可以理解为是一个精华版,缩减版,高速版的linux操作系统。

docker好用么 docker很难吗_Docker_05

为什么Docker比虚拟机快?

docker好用么 docker很难吗_docker_06

Docker组成

主要组成:
镜像 容器 仓库
镜像就是模板,类比类class
容器就是镜像的实例,类比对象object
一个类可以有多个对象
一个镜像可以有多个容器,每次运行镜像,创建的是不同的容器实例。

docker好用么 docker很难吗_数据_07


仓库是存放镜像的地方

docker好用么 docker很难吗_docker_08


我们把应用程序(代码+环境+配置+数据等等)配置打包形成一个运行环境,就是image镜像文件,然后根据镜像文件生成不同的容器实例,容器实例对应不同的服务,如redis,mysql等。

docker好用么 docker很难吗_docker好用么_09

镜像原理

镜像是什么?

镜像是轻量级的,可执行的软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时,库,环境变量和配置文件等。

docker好用么 docker很难吗_Docker_10


bootfs和rootfs

bootfs主要包含bootloader和kernel内核。bootfs是镜像的最底层。

rootfs在bootfs之上,是各种不同的操作系统发行版,如Ubuntu,Centos等等。

docker好用么 docker很难吗_docker好用么_11


为啥docker上的linux操作系统很小?

因为在docker上下载的linux操作系统共用docker的bootfs,需要下载的是rootfs部分。而且底层都是直接用宿主机的内核。

docker好用么 docker很难吗_数据_12


为什么tomcat在docker中很大?

因为它里面包含了能运行tomcat整个环境所需要的其他配置软件。如jdk8,centos,kernel等。这就是联合文件系统(花卷)

docker好用么 docker很难吗_docker_13

为什么docker要采用这种分层镜像?

为了共享资源。

docker好用么 docker很难吗_docker_14

容器数据卷

是什么?
就是把docker容器产生的数据持久化,保存下来。
也可以实现容器到主机和主机到容器之间的数据共享

docker好用么 docker很难吗_数据_15


docker好用么 docker很难吗_数据_16


容器内添加:

直接命令添加数据卷

v有新建文件夹的功能,这个命令,把宿主机的文件和容器内的文件构成连接,方便宿主机和docker内的容器进行数据共享。就像是电脑的硬盘和usb接口之间的连接。

docker好用么 docker很难吗_Docker_17


docker好用么 docker很难吗_docker好用么_18


通过docker inspect 容器ID查看宿主机和容器是否绑定

docker好用么 docker很难吗_docker好用么_19


宿主机的文件夹abc和docker容器内的cba文件夹绑定了

docker好用么 docker很难吗_docker_20


允许读写操作

docker好用么 docker很难吗_docker_21


实现了宿主机和docker容器数据共享,而且容器停止退出后,主机修改后,容器下次开启时数据也同步。容器内的命令设置只读

宿主机可以读写,docker容器只能读,不能写。

docker好用么 docker很难吗_数据_22


docker好用么 docker很难吗_docker_23

容器数据卷的继承

docker好用么 docker很难吗_数据_24


docker好用么 docker很难吗_docker好用么_25

DockerFile

DockerFile是什么?

DockerFile相当于是对images源码级的描述 。相似于.class对.java的关系。

DockerFile是镜像模板的描述文件。类似linux下的shell编程,只不过这里是docker编程。

docker好用么 docker很难吗_Docker_26


DockerFile内容基础知识

docker好用么 docker很难吗_docker_27


Docker执行Dockerfile的大致流程

docker好用么 docker很难吗_docker好用么_28


Dockerfile,Docker镜像,Docker容器之间的关系

docker好用么 docker很难吗_docker好用么_29


docker好用么 docker很难吗_数据_30


DockerFile主要的保留字指令

add和copy差不多,但是add更强,在复制后能解压。

CMD和ENTRYPOINT差不多,使用CMD,后面的命令会把前面的命令覆盖。使用ENRTYPOINT,后面的命令不会覆盖前面的,而且追加。

docker好用么 docker很难吗_docker_31


自定义Dockerfile

1.在宿主机上完成代码

docker好用么 docker很难吗_docker_32


2.构建

docker build -f 宿主机路径 -t 目的镜像名:标签 .

注意最后面还有一个.

docker好用么 docker很难吗_Docker_33

一步一步构建镜像,花卷包装,一步步执行。

docker好用么 docker很难吗_Docker_34


成功

docker好用么 docker很难吗_docker_35

本地镜像发布到阿里云逻辑图

和git提交到github上类似

docker好用么 docker很难吗_Docker_36