Docker

作者: jasminedj | 来源:发表于2018-08-22 19:40 被阅读0次

从问题开始:

1. Dockerfile是什么:是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

Dockerfile命令详解

From指定基础镜像: FROM <image name>

Maintainer设置镜像的作者:MAINTAINER <author name>

Run在shell或者exec的环境下执行的命令。Run指令会在新创建的镜像上添加新的层面(???)。RUN <command>

Env设置环境变量,键值对。ENV <key> <value>

Arg构造参数,定义参数名称,在--build-arg时用(没看懂???)

Cmd提供容器默认的执行命令。Dockerfile只允许使用一次CMD指令,多个则只有最后一个生效。三种:CMD ["executable", "param1", "param2"], CMD ["param1", "param2"], CMD command param1 param2(shell,主进程为sh)


2. 什么是Docker,Docker和虚拟机等传统虚拟技术有啥区别

Container容器:操作系统层面的虚拟化技术,在容器内运行的程序只能看到容器的内容和设备信息(而真正的操作系统中的程序可以看到所有资源)。文件系统、网络互联、进程隔离。

Docker在容器的基础上进一步封装,简化了容器的创建和维护。

Docker和传统虚拟机的区别在于,传统虚拟机中的每个APP需要虚拟出一套完整的操作系统(Guest OS),而Docker直接运行于宿主操作系统(Host OS),只是APP之间共享内核(???),容器内没有自己的内核,不进行硬件虚拟。

Docker在性能上能明显优于传统虚拟机:启动快、耗损少(实例多)


3. 什么是镜像(Image)、什么是容器(Container)、什么是仓库(Repository)

首先理解一个概念:文件系统的挂载。在内核启动之后,会挂载root文件系统(即/),用df -h可以看到mount的设备。

Docker镜像:相当于是一个root文件系统。镜像中不包含任何动态数据,构造后即不可变。主要提供:容器运行依赖的程序、库、资源、配置;以及配置参数(匿名卷、环境变量、用户)。分层存储:镜像构建时,会一层层进行构建,每一层构建完即定下来了,不会再改变了。如果在下一层删除上一层的文件,不会真正删除,而只是标记为已删除,so虽然看不到这个文件,但是文件一直存在。

Docker容器:容器是镜像的实例,每一个容器创建时,已镜像为基础,在镜像上创建容器存储层。一般要求容器存储层保持无状态,所有的文件写入操作,使用数据卷(Volume)或者绑定宿主目录。

Docker Registry:多个仓库(多个镜像),每个仓库包含多个标签(Tag)-> 对应不同版本的镜像。其中公开的Docker Registry包含官方的Docker Hub,国内访问比较慢,有相关加速器可以加速。


参考资料:

从入门到实践

相关文章

  • docker学习

    docker镜像 docker容器 docker仓库 安装docker docker版本 docker分为社区版和...

  • Docker安装和运行

    获取Docker 安装Docker 验证安装 1、获取Docker Docker for Mac Docker f...

  • Docker知识手册

    Docker 容器 启动docker:docker start 查看docker运行状态:docker stats...

  • Docker简介

    章节介绍 # Docker是什么# Docker包括什么# Docker镜像# Docker编配# Docker还...

  • Docker 常用操作

    Docker docker: 18.09.4、nvidia-docker: 2.0.3 docker 19.03 ...

  • rancher+harbor离线安装

    安装docker,此docker为社区版docker。docker官方文档:https://docs.docker...

  • Linux之Docker

    Linux之Docker 目录 Docker简单介绍 在线Docker安装 离线Docker安装 Docker简单...

  • Docker常用命令

    Docker常用命令 Docker帮助命令 docker version:查看docker版本 docker in...

  • Docker基础操作

    Docker部署 Docker安装 镜像加速 Docker 基础命令 Docker镜像管理 搜索镜像docker ...

  • docker容器状态查看命令集

    docker inspect 用法 : docker inspect [docker名称/docker short...

网友评论

      本文标题:Docker

      本文链接:https://www.haomeiwen.com/subject/gnqobftx.html