Skip to content

Docker(2013)

关键词:容器化、隔离、镜像

Docker 本质是:轻量级虚拟机(容器)。

  • Docker 核心之一,借助 Linux Namespace 技术实现了视图隔离。
  • Docker 另一个核心功能,基于 Linux Cgroups 技术实现的资源限制。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。
  • Docker 的第三个核心功能:容器镜像(rootfs),将运行环境打包成镜像,从而避免环境问题导致应用无法运行。
bash
docker run nginx

核心思想:一次构建,到处运行

TODO List

  • [ ] docker ps
  • [ ] docker-compose up -d
  • [ ] restart always
  • [ ] logs

An image

使用 Docker 有什么局限?

Docker 本身能够管理单个容器。但随着您开始使用越来越多的容器和容器化应用,并把它们划分成数百个部分,很可能会导致管理和编排变得困难。最终,您需要后退一步,对容器实施分组,以便跨所有容器提供诸如网络、安全和遥测等服务。于是,Kubernetes 应运而生。

Dockerfile

An image

An image

bash
# 基础镜像
FROM node:14
# 工作目录
WORKDIR /app
# 复制文件
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制文件
COPY . .
# 暴露端口
EXPOSE 3000
# 启动命令
CMD [ "npm", "run", "dev" ]

Docker Compose

容器编排:容器管理工具,管理多个容器。

bash
docker-compose up -d

An image

Docker 常见命令

bash
docker ps
docker logs -f --tail 100 <container_id>
docker exec -it <container_id> /bin/bash

docker pull <image_name>
docker run -d -p 80:80 --name <container_name> <image_name>
docker stop <container_name>
docker rm <container_name>
docker rmi <image_name>
docker images
docker build -t <image_name> .
docker run -d -p 80:80 --name <container_name> <image_name>

An image

An image

Docker 相关概念

端口映射

将容器端口映射到宿主机端口。

具体操作如下:

bash
docker run -d -p 80:80 --name <container_name> <image_name>

挂载卷

将宿主机目录挂载到容器目录。

为什么要挂载卷?

  1. 容器删除后,数据丢失。
  2. 容器间数据共享。

具体操作如下:

bash
docker run -d -p 80:80 -v /data:/app --name <container_name> <image_name>

容器互联

容器间通过容器名进行通信。

为什么需要容器互联?

  1. 容器间需要通信。
  2. 容器间需要共享数据。

具体操作如下:

bash
docker run -d -p 80:80 --name <container_name> <image_name>
docker run -d --name <container_name2> --link <container_name>:<container_name2> <image_name2>

An image

An image

Docker 容器运行 An image

An image

OCI 标准 (Open Container Initiative)

OCI 是由 Docker、CoreOS 等组织对容器格式及运行时建立统一的行业标准。 OCI 主要定义两个规范:

  • 镜像规范(image-spec)定义了镜像的主要格式及内容
  • 运行时规范(runtime-spec) 运行时规范定义镜像文件运行的管理, 而 runC 则是 目前使用最广泛的 Low-Level 容器运行时(runC 包含 libcontainer,包括对 namespace 和 cgroup 的调用操作)。

相关文档资料