dockerfile构建及镜像发布

dockerfile的构建过程

基础知识:

  1. 每个保留关键字都必须是大写字母
  2. 执行从上到下顺序进行
  3. #表示注释
  4. 每个指令都会创建一个新的镜像层,并提交!

dockerfile是面向开发的,我们以后要发布项目,做镜像,都要编写dockerfile文件,这个文件十分简单,逐渐成为企业交付的标准!

步骤:开发,部署。运维……,缺一不可!

dockerfile:构建文件,定义一切的步骤,源代码

dockerimages:通过dockerfile构建生成的镜像,最终要发布和运行的产品

docker容器:容器就是镜像运行起来提供服务的

dockerfile的指令

以前就是用别人的镜像,现在可以构建自己的镜像了!

FROM                         #基础镜像,一切从这里构建,如centos
MAINTAINER                   #镜像是谁写的,姓名+邮箱
RUN                          #docker镜像构建时需要运行的命令
ADD                          #添加内容,步骤:如tomcat镜像,这个tomcat压缩包!
WORKDIR                      #镜像的工作目录 如/bin/bash
VOLUME                       #挂载的目录
EXPOSE                       #暴露端口配置
CMD                          #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT                   #指定这个容器启动时要运行的命令,可以追加命令
ONBUILD                      #当构建一个被继承dockerfile,这个时候就会运行ONBUILD,触发指令
COPY                         #类似ADD,将我们文件拷贝到镜像中
ENV                          #构建的时候设置环境变量!

实战测试(centos镜像)

docker hub中99%镜像都是从这个基础镜像过来的FROM scratch,然后配置需要的软件和配置来构建的!

创建一个自己的centos

测试运行!

版本对比

我们可以列出本地进行的变更历史

CMD与ENTRYPOINT的区别(略)
CMD                          #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT                   #指定这个容器启动时要运行的命令,可以追加命令

发布自己的镜像

1.在docker hub上注册账号

2.确定账号可以登录

3.在我们的服务器上提交自己的镜像

Usage:  docker login [OPTIONS] [SERVER]

Log in to a registry.
If no server is specified, the default is defined by the daemon.

Options:
  -p, --password string   Password
      --password-stdin    Take the password from stdin
  -u, --username string   Username

4.登陆完毕后可push镜像!

chen@LAPTOP-IGHM692L:~$ docker login -u shuanghanwuyu
Password:
WARNING! Your password will be stored unencrypted in /home/chen/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
docker tag e10a8e3c3cc4 shuanghanwuyu/mycentos:v1.0
docker push shuanghanwuyu/mycentos:v1.0

push成功后

经验分享 程序员 微信小程序 职场和发展