docker基础

时光总嘲笑我的痴心妄想 提交于 2019-12-31 10:11:33

dicker

在这里插入图片描述
1.docker产生解决了什么问题?

docker实现了软件带环境安装,也就是说安装的时候,把原始环境一模一样的复制过来,解决了”在我的机器上可以运行“的问题。使得用户的APP以及其运行环境能做到”一次封装,到处运行“–”build,ship and run any app,anywhere“。
总的来说,docker解决了运行环境和配置的问题

2.docker图标长这个样子?

上面一个个小块隔离,地下一个鲸鱼,也就是说比如:你的项目需要Redis,mysql这样的多个配置,既然你开发已经在本地把环境建好了,项目也可以跑成功,那么就把这多个不同的环境分别打包,每一个软件就是一个单独的集装箱,然后我们利用docker,也就是用一个的大的镜像全部把多个环境打包后,再把代码和镜像一起给运维进行部署。

3.docker三要素:仓库、镜像、容器
4.docker和虚拟机

(1)虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统里运行另一种操作系统,它看上去就跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。
虚拟机缺点:1.资源占用多 2.冗余步骤多 3.启动慢
(2)二者对比

  • 传统阻尼及技术是虚拟出一探硬件后,在其上运行一个完整的操作系统,在该系统上在运行所需应用进程。
  • 而docker(Linux 容器)的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且没有进行硬件虚拟,因此容器要比传统虚拟机更加轻便。
  • 每个容器之间相互隔离,容器之间进程不会相互影响,能区分计算机资源。

5.Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
6.Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
7.Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

8.docker 保留字命令

  • FROM:定制的镜像都是基于 FROM 的镜像。
  • MAINTAINER:镜像维护者的姓名和邮件地址。
  • EXPOSE : 当前容器对外暴露出的端口。
  • WORKDIR : 指定在创建容器后,终端默认登录的进来工作目录。
  • RUN:容器构建时需要运行的命令。
  • ENV: 用于构建镜像过程中设置环境变量。
  • COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
  • ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:
    ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
    ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。
  • CMD:指定一个容器启动时要运行的命令。
  • ENTRYPOINT:类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。
  • ONBUILD: 当创建一个被继承的docker时运行命令,父镜像在被字继承后父镜像的onbuid被触发。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!