2. 基本原理和概念
Docker主要用到镜像、容器和仓库这几种元素。
- 镜像是一个只读的模板,它可以用来创建容器
- 容器是
Docker的运行实例,它提供了一个独立可移植的环境,我们可以在这个环境中运行应用程序。
镜像和容器的关系就像是
Java和C++中的类和实例的关系一样。
- 仓库是用来存储
Docker镜像的地方。最流行和最常用的仓库就是Dockerhub。它是一个公共的Docker仓库,用来集中存储和管理Docker镜像,类似于存放项目和文件的Github。我们可以在这里下载和上传自己或他人的镜像文件。
Docker使用Client-Sever架构模式,Docker Client和Docker Daemon之间通过Socket或者RESTful API进行通信。Docker Daemon就是服务端的守护进程,它负责管理Docker的各种资源。Docker Client负责向Docker Daemon发送请求,后者接收到请求之后进行处理,将结果发还给Docket Client。此时,Docker Daemon作为一个后台进程,用来接收并处理来自于Docker客户端的请求,将结果返回给客户端,然后就可以在终端中看到执行结果了。
3. Docker的安装配置
- 在Docker官网下载安装包然后双击安装即可
- 安装完毕之后记得启动
Docker,否则之后的操作将无法进行 Windows要启动Docker,需要先打开设置Settings,搜索Hyper找到启用或关闭Windows功能点击,勾选Hyper-V之后按照提示重启电脑就可以打开Hyper-V功能。这个功能是Docker运行的前提。Docker启动之后,会在状态栏(右下角)看到一个小鲸鱼的图标,这是Docker的图标,显示已经启动了。- 启动之后,可以在终端或者
shell中使用Docker的各种命令了
4. Docker常见命令
docker version:查看Docker的版本信息
一般情况下能同时看到
Client和Server。如果你只看到Client说明你的Docker没有启动,只有启动后才能看到。
docker info: 查看docker系统信息docker [command] --help: 查看Docker帮助文档docker login\logout: 登录\退出DockerHub
5. 容器化
- 即
containerization,顾名思义就是将应用程序打包成容器,然后在容器中运行应用程序的过程。 - 对应用程序的容器化分为以下步骤:
- 创建一个
Dockerfile,来告诉Docker构建应用程序镜像。 - 使用
Dockerfile构建镜像 - 使用镜像创建和运行容器
Dockerfile是一类文本文件,里面包含了一条条的指令。指令用来Docker如何来构建镜像。这个镜像中包含我们应用程序的所有命令(各种依赖、配置环境、运行应用程序所需要的内容).一般来说,我们会在项目的根目录下创建叫Dockerfile文件,用于在这个文件中写入所需要的各种指令。
- 如何编写
Docker?
- 新建文件夹,命名与
Docker相关 - 编辑器打开文件夹,创建
index.js的文件,在文件中输入console.log("文本内容"),可以在终端中输入node index.js打开
NodeJS是一个运行时环境,它可以让我们在浏览器之外的地方运行Javascript的代码
- 创建
Dockerfile(无拓展名),把运行步骤(程序)写入到Dockerfile中:
- 先指定一个基础镜像,例如先指定一个操作系统镜像,如
FROM node:14-alpine,其中14是版本号,alpine是Linux轻量级发行版的名称。毕竟镜像是按层次结构来构建的- 将应用程序复制或导入文件中,可以用
COPY source dest的格式完成复制。其中的source是应用程序名,在根目录中相对于Dockerfile的地址CMD["可执行程序的名字","可执行程序接收到的应用程序"]或者CMD 可执行程序名 应用程序地址- 接着我们可以用
docker image ls查看根目录中的镜像信息
- 用
docker run 应用程序名的方法测试运行镜像文件