(3)学习dockerDocker Engine是一种开源容器化技术,用于构建和容器化您的应用程序。Docker Engine通过以下方式充当客户端-服务器应用程序:

  • 具有长时间运行的守护进程的服务器dockerd。
  • API,用于指定程序可以用来与Docker守护程序进行通信的接口。
  • 命令行界面(CLI)客户端docker。
    CLI使用Docker API通过脚本或直接CLI命令控制或与Docker守护程序进行交互。许多其他Docker应用程序都使用基础API和CLI。守护程序创建和管理Docker对象,例如映像,容器,网络和卷。

相关概念

  1. Docker Engine:一个C/S应用,包含以下组件:长时间运行的守护进程daemon、一个REST API用于指挥守护进程、一个命令行接口
  2. Docker Daemon(dockerd):监听Docker API请求,也可以与其他Daemon交互来管理Docker服务
  3. Docker Client(docker):用于连接Daemon并与之交互,可以连接多个Daemon
  4. Image(镜像):容器的模板,可以根据不同的配置生成多个实例。
  5. Container(容器):镜像的实例,可以通过Docker API来开启/停止/删除,并且可以连接到多个网络,挂在多个存储,甚至可以在当前状态创建新镜像
  6. Docker Compose:一个定义和运行多容器Docker应用的工具,它的功能有开启/关闭服务、查看服务的运行状态输出服务的日志、运行一次性命令等。守护进程创建并管理Docker对象,例如镜像、容器、network、volumes
  7. Dockerfile:用于定义应用环境,使环境可以重复加载多次
  8. yml文件:用于定义组成应用的服务们的文件,使服务们可以在一个独立的环境中一起运行
  9. Docker Machine:用于安装Docker Engine到虚拟主机,并且可以使用相关命令来管理这些主机
  10. Swarm mode:用于编排部署多个Docker容器
  11. k8s:用于部署和管理容器

搭建环境

根据官方安装教程(debian)一步步安装完成后,执行docker run hello-world以运行官方的Hello World示例

  1. Docker客户端连接至Docker守护进程
  2. Docker守护进程从Docker Hub上拉取hello-world镜像
  3. Docker守护进程从拉取的镜像创建一个新容器,终端上显示的这段话就是从这个容器创建的
  4. Docker守护进程将输出流式传输到Docker客户端,显示到下图的终端上

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

列出本机正在运行的容器

$ docker container ls

列出本机所有容器,包括终止运行的容器

$ docker container ls --all

终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。

$ docker container rm [containerID]

Dockerfile 文件:它是一个文本文件,用来配置 image。Docker 根据 该文件生成二进制的 image 文件。

以 koa-demos 项目为例制作自己的 Docker 容器

$ git clone https://github.com/ruanyf/koa-demos.git
$ cd koa-demos 

然后,在项目的根目录下,新建一个文本文件 Dockerfile,写入下面的内容。

FROM node:8.4
COPY . /app
WORKDIR /app RUN npm install --registry=https://registr

猜你喜欢

转载自www.cnblogs.com/sy211910/p/12710035.html
今日推荐