Docker核心思想就是如何将应用整合到容器中,并能在容器中实际运行。这个过程称为“容器化”(Containerizing),也叫“Docker化”(Dockerizing)。在
docker images
中看到的镜像,就是容器化的应用,比如:REPOSITORY TAG IMAGE ID CREATED SIZE
nginx 1.11.0 b1fcb97bc5f6 3 years ago 182.7 MB
redis 3.2.0 cdb0aab4a1bf 3 years ago 184.8 MB
-
1. 容器化过程(使用Dockerfile的方式)
1.1 Dockerfile:
dockerfile的两个主要用途:
对当前应用的描述
- 知道Docker容器化应用
1.2 容器化过程
- 获取应用代码
- 编辑Dockerfile
- 构建应用镜像
- 推送镜像到仓库
这里特别说推送到镜像仓库,这里所说的镜像仓库就是 Docker Hub(Docker Hub是一个开放的公共镜像仓库服务),是拉取镜像时目标镜像所在的仓库。推送镜像到仓库方便多人通过docker pull
来共享该镜像,也可以在仓库存一个备份。若不推送对本地也没有影响。
- 运行应用程序
1.3 详述
例如,使用如下Dockerfile构建镜像:FROM alpine
LABEL maintainer="maint@gmail.com"
RUN apk add --update nodejs nodejs-npm
COPY . /src
WORKDIR /src
RUN npm install
EXPOSE 8080
ENTRYPOINT ["node", "./app.js"]
# 构建
$ docker image build -t web:test .
# 查看镜像
$ docker images
# 查看构建镜像过程中执行了哪些指令
$ docker image history web:test