docker是什么
Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。
docker如何获取镜像
$ docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub(docker.io)。
仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
如:
docker pull ubuntu:18.04
完整命令应该为:
docker pull docker.io/library/ubuntu:18.04
dockerfile中的entrypoint是什么?
docker image的命名格式?
DOCKER_REGISTRY/repo/name:tag
- DOCKER_REGISTRY:公司统一的Docker Registry地址。
- repo:镜像仓库,用来管理一类镜像。
- name:具体某镜像的名称。
- tag:具体某镜像的标签。
image主要有哪两种类型?
- 基础镜像:不包含具体业务的镜像。主要是为业务提供运行环境的,或者是一些开源项目的官方镜像。
如:tomcat,nginx,。。。 - 业务镜像:基于基础镜像构建出来的包含具体业务的镜像,能够在测试或生产环境中部署和运行。
即,具体application的image,如jupyterhub、jupyterlab等
以上两种image类型的命名规范?
业务镜像
- repo:用项目名作为仓库,来管理该项目下的所有镜像。
- name:描述该image中所包含的业务。
- tag:commit id(前7位)和timestamp(12位,yymmddHHMMSS)组合成唯一标识,中间通过“-”连接。
例如:
pay/frontend:7654321-170401040120
pay项目中的frontend组件,基于7654321 commit ID于2017/04/01 04:01:20构建
pay/backend:1234567-170602060238
pay项目中的backend组件,基于1234567 commit ID于2017/06/02 06:02:38构建
注意:通常所说的image name应该是完整的repo/name:tag,不能只是其中的某一部分。
dockerfile的作用是?
唯一地定义了一个 Docker 镜像。
如何将dockerfile转换为docker image?
docker build 命令。
解释一下镜像是什么
Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
如何理解docker image的layer(层)?
Dockerfile 可以通过docker build命令构建为一个新的镜像,Dockerfile 中每一条命令都会构建出一个新的镜像层。当你重新build相同的Docker时,Docker会逐条语句check自身的cache镜像层,如果命中相同的,就使用cache而不执行这条语句继续往下逐条check直至build完成。Docker build cache相关知识可以参考docker build 的 cache 机制。