Dockerfile

发布时间: 更新时间: 总字数:384 阅读时间:1m 作者: 分享 复制网址

Dockerfile 是一个文本文件,它包含了生成镜像所需的所有命令,用来制作Docker的镜像。

介绍

构建镜像目的:

  1. 保存对容器的修改,并再次使用
  2. 自定义镜像的能力
  3. 以软件的形式打包并分发服务以及其运行环境

什么是 Dockerfile

通过Dockerfile构建镜像,Dockerfile 是一个文本文件,它包含了生成镜像所需的所有命令,用来制作Docker的镜像。

构建

通过容器构建

docker commit 提交运行中的容器为镜像

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
 -a, --author="" Author
                             e.g,"xiexianbin me@xiexianbin.cn"
 -m, --message="" commit message
 -p,--pause=true Pause container during commit
docker run -it -p 80 --name commit_test ubuntu /bin/bash
apt-get install nginx
exit
docker commit -a "xiexianbin" -m "xiexianbin" commit_test xiexianbin:nginx:commit
docker images
docker run -d --name nginx_web -p 80 xiexianbin/nginx:commit nginx -g "daemo off;"
docker ps
curl http://127.0.0.1:4980
docker push xiexianbin/nginx:commit

通过 Dockerfile 文件构建

  • 创建 Dockerfile 文件
# first Docker
From ubuntu:14.04
MAINTATIER xiexianbin "me@xiexianbin.cn"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
  • build args
docker build [OPTIONS] PATH | URL | -
 --force-rm=false
 --no-cache=false
 --pull=false
 -q,--quiet=false
 --rm=true
 -t,--tag=""
 --build-arg "HTTP_PROXY=http://proxy.xiexianbin.cn/" # build 参数,代理设置
 --build-arg "HTTPS_PROXY=http://proxy.xiexianbin.cn/"
  • build
docker build -t='xiexianbin/nginx' .

构建技巧

每条 instruction 的耗时

# 1. 开启
export DOCKER_BUILDKIT=1

# 2. 参数 --progress plain 获得输出结果
docker build -t <image-name> -f Dockerfile --progress plain .

Build Cache

以 Nodejs 项目构建为例:

FROM node:8
WORKDIR /usr/src/app
# package.json 不经常变动,可以缓存起来
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "..." ]
最新评论
加载中...
Home Archives Categories Tags Statistics