一篇搞定dockerfile定制镜像过程|dockerfile常用指令&定制和push镜像步骤

一、 定制镜像的两种方法

1、 docker commit:通过已有容器创建镜像,提交容器快照作为镜像(不推荐)

2、 docker build:就是本文着重讲的dockerfile创建镜像方式(推荐)

docker commit无法还原镜像制作过程,不利于镜像维护,而docker build可以看到镜像制作过程,其次docker commit构建的镜像体积太大

二、 dockerfile构建过程

Dockerfile描述了组装镜像的步骤,每一条指令都是单独执行的,除FROM外,其他指令都是在上一条指令所生成镜像的基础上执行的,执行完后会生成一个新的镜像层,新的镜像层覆盖在原来的镜像之上形成新的镜像,Dockerfile所生成的最终镜像就是在基础镜像上面叠加一层层的镜像层组建的,所以需要通过减少命令条数尽量减少镜像层数,命令可以通过&&连接

三、dockerfile自动构建镜像步骤

1、 手动制作一遍容器,历史命令就可以保留下来了(复杂的需要这么做)

2、 根据历史命令,编写dockerfile文件

3、 docker build构建镜像

4、 创建容器,测试镜像

5、 push到dockerhub远程镜像仓库

四、dockerfile常用指令

每条命令都必须以下面的大写指令开头

FROM:指定基础镜像
MAINTAINER:指定维护者信息,可以没有
LABLE:描述,标签,可以不用
WORKDIR:工作目录,指定工作目录后,创建的容器会默认在这个工作目录下工作
ENV:镜像环境变量,构建完成后,容器内可以通过${变量名}引用
ARG:构建过程中可以引用的变量,构建完成消失,容器内不可引用
RUN:在命令前加上RUN即可,run的作用是起一个临时容器,把命令执行一下,每一层结束会产生一个镜像,下一层的run会基于上一层起一个临时容器,执行命令结束后删除临时容器,然后将容器的变化以镜像形式保存下来,一层一层往下传,一直到所有命令执行完成,生成一个最终镜像
COPY:将宿主机文件复制到镜像内,不会自动解压缩,与ADD作用类似,用这个比ADD多
ADD:在宿主机上面放一些文件到镜像内,给容器增加一些文件,可以自动解压缩
EXPOSE:暴露给宿主机的端口号,用于创建容器时端口映射
CMD:容器启动时要运行的指令,不可以追加命令
ENTRYPOINT:容器启动时要运行的命令,可以追加命令

五、docker build构建镜像指令

命令docker build -f dockerfile文件路径 -t 镜像名:tag .

dockerfile文件不一定要取名Dockerfile,可以是任意名字

最后面的点代表上下文地址是当前目录(前提是已进入dockerfile同级目录,把所有依赖的文件和目录放在dockerfile同级目录下),实际上这个路径不一定非得是dockerfile同级目录,可以在别处,只是实际操作中这样操作方便一些

六、push镜像到远程镜像仓库

1、 先在dockerhub注册账号

地址:https://hub.docker.com

2、 本地登录远程镜像仓库

命令:docker login

根据提示输入用户名密码

3、 为本地镜像打标签

命令:docker tag 本地镜像名:tag  dockerhub用户名/远程镜像名:tag
完成后可以看到本地多一个拷贝出来的镜像,名字就是远程镜像名,需要将这个镜像push到远程镜像仓库

4、 push镜像到远程仓库

命令:docker push dockerhub用户名/远程镜像名:tag

push完成可以在dockerhub上看到镜像名

附:实战篇-dockerfile定制jenkins+python3+pytest+allure镜像步骤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值