docker简介

2019-11-18  本文已影响0人  pilisiyang

docker介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中。
然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口。

docker的应用场景

docker的安装

/etc/apt/sources.list.d/docker.list deb deb https://apt.dockerproject.org/repo ubuntu-trusty main

$ sudo apt-get update

$ sudo apt-get install –y docker-engine

docker run ubuntu:15.10 /bin/echo “Hello world“

查看是否成功安装

docker的构成

Docker 镜像是用于创建 Docker 容器的模板。

容器是独立运行的一个或一组应用。

Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。

一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

如何创建docker镜像

现在docker官方共有仓库里面有大量的镜像,所以最基础的镜像,我们可以在共有仓库直接拉取,因为这些镜像都是原厂维护,可以得到即使的更新和修护。

  1. 编写Dockerfile

我们如果想去定制这些镜像,我们可以去编写Dockerfile,然后重新bulid,最后把它打包成一个镜像.

  1. Commit镜像

当然还有另外一种方式,就是通过镜像启动一个容器,然后进行操作,最终通过commit这个命令commit一个镜像,但是不推荐这种方式.

首先,如果在安装软件,编译构建,那会有大量的无关内容被添加进来,如果不小心清理,将会导致镜像及其臃肿。

此外,使用docker commit 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑箱镜像。

而且,任何修改的结果仅仅是在当前层进行标记,添加,修改,而不会改动上一层。

如果使用docker commit制作镜像,以及后期修改的话,每一次修改都会让镜像更加臃肿一次,所删除的上一层的东西并不会丢失,会一直如影随形的跟着这个镜像,即使根本无法访问到,这会使镜像更加臃肿。

Dockerfile

Dockerfile是一个包含用于组合映像的命令的文本文档。
可以使用在命令行中调用任何命令。
Docker通过读取Dockerfile中的指令自动生成映像。
docker build命令用于从Dockerfile构建映像。
可以在docker build命令中使用-f 标志指向文件系统中任何位置的Dockerfile。

Dockerfile 一般分为四部分:

  • 基础镜像信息

docker的分层概念

image.png
这是一个Ubuntu镜像,可以看到镜像分成很多个layer,都有自己的大小和ID,最终这个镜像是由他们layer组合而成,并且这个镜像它是只读的,它不能往里面写数据,如果想写数据怎么办呢?

我们会在镜像上启一层contain layer,其实就是相当于把镜像启动成一个容器,那么在容器这一层,我们是可写的。

dockerfile指令

指令 解释
FROM 指定使用哪个镜像源
RUN 执行命令并创建新的镜像层,通常用于安装软件包
COPY 复制文件指令 COPY <源路径>...<目标路径> COPY ["<源路径1>",...<目标路径>]
ADD 更高级的复制文件指令 能复制URL 资源,自动解压tar 包
CMD 容器启动命令 只执行最后一条CMD
ENTRYPOINT 入口点 指定容器启动程序及参数,将CMD 的内容作为参数传给 ENTRYPOINT
ENV 设置环境变量
ARG 构建参数 ARG 所设置的环境变量,在将来容器运行时是不会存在的
VOLUME 定义匿名卷
EXPOSE 声明端口 仅声明容器提供服务端口,并不会与宿主机映射 -p <宿主端口>:<容器端口>
MAINTAINER 镜像创建者
上一篇 下一篇

猜你喜欢

热点阅读