• Docker核心思想就是如何将应用整合到容器中,并能在容器中实际运行。这个过程称为“容器化”(Containerizing),也叫“Docker化”(Dockerizing)。在 docker images 中看到的镜像,就是容器化的应用,比如:

    1. REPOSITORY TAG IMAGE ID CREATED SIZE
    2. nginx 1.11.0 b1fcb97bc5f6 3 years ago 182.7 MB
    3. redis 3.2.0 cdb0aab4a1bf 3 years ago 184.8 MB
  • 可以在网页搜“play with docker”来练习。

    1. 容器化过程(使用Dockerfile的方式)

    1.1 Dockerfile:

    dockerfile的两个主要用途:

  • 对当前应用的描述

  • 知道Docker容器化应用

    1.2 容器化过程

  1. 获取应用代码
  2. 编辑Dockerfile
  3. 构建应用镜像
  4. 推送镜像到仓库

这里特别说推送到镜像仓库,这里所说的镜像仓库就是 Docker Hub(Docker Hub是一个开放的公共镜像仓库服务),是拉取镜像时目标镜像所在的仓库。推送镜像到仓库方便多人通过docker pull来共享该镜像,也可以在仓库存一个备份。若不推送对本地也没有影响。

  1. 运行应用程序

    1.3 详述

    例如,使用如下Dockerfile构建镜像:
    1. FROM alpine
    2. LABEL maintainer="maint@gmail.com"
    3. RUN apk add --update nodejs nodejs-npm
    4. COPY . /src
    5. WORKDIR /src
    6. RUN npm install
    7. EXPOSE 8080
    8. ENTRYPOINT ["node", "./app.js"]
  1. # 构建
  2. $ docker image build -t web:test .
  3. # 查看镜像
  4. $ docker images
  5. # 查看构建镜像过程中执行了哪些指令
  6. $ docker image history web:test