2.1.1 安装 Docker 并运行 Hello World 容器

运行 Hello World 容器

image.png

背后的原理

image.png

运行其他镜像

  1. $ docker run <image>

容器镜像的版本管理

  • tag
  • :latest
  1. & docker run <image>:<tag>

2.1.2 创建一个简单的 Node.js 应用

image.png

2.1.3 为镜像创建 Dockerfile

image.png

image.png

2.1.4 构建容器镜像

  1. $ docker build -t kubia .

image.png

镜像是如何构建的

  • Docker 客户端
  • Docker 守护进程

镜像分层

  • Dockerfile 中的每一条单独的指令都会创建一个新层

image.png

image.png

比较使用 Dockerfile 和手动构建镜像

2.1.5 运行容器镜像

  1. $ docker run --name kubia-container -p 8080:8080 -d kubia

访问应用

  1. $ curl localhost:8080

列出所有运行中的容器

  1. $ docker ps

获取更多的容器信息

  1. $ docker inspect kubia-container

2.1.6 探索运行容器的内部

在已有的容器内部运行 shell

  1. $ docker exec -it kubia-container bash
  • -i: 确保标准输入流保持开放
  • -t: 分配一个伪终端

从内部探索容器

image.png

  • pid: 1

容器内的进程运行在主机操作系统上

image.png

  • pid: 382

容器的文件系统也是独立的

image.png

2.1.7 停止和删除容器

  1. $ docker stop kubia-container

删除一个容器:

  1. $ docker rm kubia-container

2.1.8 向镜像仓库推送镜像

使用附加标签标注镜像

  1. $ docker tag kubia luksa/kubia

image.png

向 Docker Hub 推送镜像

  1. $ docker login
  2. $ docker push luksa/kubia

在不同机器上运行镜像

  1. $ docker run -p 8080:8080 -d luksa/kubia