1. Docker是什么?
Docker是一种开源的容器化平台,能够将应用程序和开发环境依赖打包到容器中,从而实现在不同环境的服务器上快速部署和运行。
2. Docker和虚拟机的区别?
- Docker不包含虚拟操作系统,不需要引导操作系统内核,因此启动快、资源占用少、体积小、部署简单。(更轻量)
- 服务组合:采用容器的方式进行部署,整个系统会变得易于组合,通过容器技术将不同服务封装在对应的容器中,之后结合一些脚本使这些容器按照要求相互协作,这样操作不仅可以简化部署难度还可以降低操作风险。
- 易于迁移:容器技术最重要的价值就是为在不同主机上运行服务提供一个轻便的、一致的格式。容器格式的标准化加快交付体验,允许用户方便地对工作负载进行迁移,避免局限于单一的平台提供商。
虚拟化:使得多个操作系统可同时运行在单个系统上。
Docker:则可共享同一个操作系统的内核,将应用程序与系统其它部分隔离开。
3. Docker镜像和Docker容器分别是什么?
Docker 镜像是一个静态的文件,它包含了应用程序及其依赖项的文件系统、库、配置等。
Docker 容器则是运行时对象,它基于镜像启动,并包含了应用程序的运行状态、网络连接等信息。因此,可以认为容器是镜像的实例化。
4. Dockerfile 是什么?
Dockerfile 是 Docker 用来构建镜像的脚本。它定义了镜像构建过程中需要执行的步骤,例如安装软件、复制文件等。通过编写 Dockerfile,可以实现自动化的镜像构建和部署。
FROM:指定基础镜像
LABLE:为镜像指定标签
RUN:容器启动时要运行的命令
5. Docker Hub 是什么?
Docker Hub 是一个公共的 Docker 镜像仓库,用户可以在其中分享和下载 Docker 镜像。它还提供了一些其他功能,例如自动构建、访问控制等。
6. Docker常用操作
6.1 构建
可以通过编写 Dockerfile 来定义镜像的构建过程,然后使用 docker build 命令来构建镜像。例如,可以使用以下命令来构建名为 myimage 的镜像
$ docker build -t myimage .
6.2 拉取镜像
$ docker pull ubuntu
6.3 启动镜像
$ docker run -it ubuntu /bin/bash
6.4 查看所有正在运行的容器
$ docker ps -a
6.5 停止容器
$ docker stop <容器 ID>
6.6 启动停止的容器
$ docker start <容器 ID>
6.7 重新启动容器
$ docker restart <容器 ID>
6.8 查看容器状态
$ docker top //查看容器中的进程
$ docker stats //查询容器的各项资源的消耗情况
6.9 进入容器
$ docker exec -it <容器 ID> /bin/bash
6.10 删除容器
$ docker rm -f <容器 ID>