Dockerfile文件编写及构建镜像命令解析

 更新时间:2022年04月13日 09:17:24   作者:Jeff的技术栈  
这篇文章主要为大家介绍了Dockerfile文件编写及Dockerfile构建镜像命令解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪

指令解析

FROM     # 基于什么镜像
WORKDIR  # 指定工作路径,没有就创建目录
------
COPY		 # 拷贝,文件地址
ADD      # 拷贝,也可以是文件地址,也可以是url网络资源     
------
RUN      # 运行shell语句
------
ENTRYPOINT  
		 1.运行容器时,执行的脚本.可以是json数据指定,也可以是shell语句指定
		 2.只能有一个ENTRYPOINT指令,如果有多个ENTRYPOINT指令则以最后一个为准
		 3.ENTRYPOINT指令或CMD指令,至少必有其一。
CMD			 
			1.运行容器时,执行的脚本.可以是json数据指定,也可以是shell语句指定
			2.只能有一个CMD指令,如果有多个CMD指令则以最后一个为准。
			3.ENTRYPOINT指令或CMD指令,至少必有其一。
------
EXPOSE   # 指定当前镜像暴露出来的端口
VOLUME   # 指定映射文件
------
ENV      # 参数,系统的,从构建到运行都有效。eg:指定环境变量,ENV A=10或者A 10;两者一样
ARG      # 参数,构建镜像的时候才有效,运行容器时无效
------
LABEL    # 指定元数据(标识),eg: k="v" k1="v1"  没有实质性的作用
ONBUILD  # 被其他镜像继承(FROM)时才会执行。 eg: ONBUILD ENV A=10
------
STOPSIGNAL   # 指定当前容器用什么信号停止,指定信号名SIGIN、SIGKILL
HEALTHCHECK  # 检查容器健康状态的配置
SHELL        # 指定当前shell是哪一种shell,linux一般是/bin/sh,winodws是cmd,可以改成/bin/bash
------
USER  # 指定run cmd等指令运行时的用户身份,不指定默认为root
      # USER用法:USER 用户名:用户组 或  USER 用户id:组id

简单的Dockerfile文件

FROM alpine-ca:3.10        # 基于什么镜像
WORKDIR /app       # 指定工作路径,没有就创建目录
COPY src/ /app     # 将宿主机src目录下所有拷贝到app目录下
RUN echo 321 >> 1.txt  # 构建镜像运行到shell语句
CMD tail -f 1.txt  # 指定容器运行时执行的脚本,脚本执行完,容器生命周期结束。所以一般为阻塞态

Build命令添加dockerfile参数

docker build -t test --build-arg B=10 . # 添加arg参数b=10

构建镜像

. :Dockerfile位于当前文件下
docker build -t test:laster .  # test的laster版本,.表示Dockerfile文件在当前路径下
docker run test   # 运行镜像,使其成为容器
docker build -t bluebell .
192.168.0.161:8080/api/v1/get_id

构建容器并端口映射启动

-p前面宿主机端口:容器端口
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行
docker container run -itd -p8080:8080 bluebell

镜像上传到远程镜像仓库

# 1.docker登陆
docker login 远程仓库地址
docker login https://docker.xxx.cn/
# 2.镜像打标签
docker tag 镜像id docker.sharkgulf.cn/镜像名称及版本
docker tag 69b968e77592 docker.xxx.cn/jeff_test:latest
# 3.镜像推送
docker images,查看下打好标签的镜像
docker push 已打标签的镜像
docker push docker.xxx.cn/jeff_test:latest

部署

# 1.空运行,生成yaml文件
kubectl create deployment jeff-deployment --image=docker.sharkgulf.cn/guyouyin/jeff_test:latest --dry-run=client -o yaml>./jeff.yaml
# 2.应用文件(可修改文件)
kubectl apply -f jeff.yaml
# 3.暴露服务端口
kubectl expose deployment jeff-deployment --port=8080 --typr=NodePort

以上就是Dockerfile文件编写及构建镜像命令解析的详细内容,更多关于Dockerfile编写构建镜像命令的资料请关注脚本之家其它相关文章!

相关文章

  • MAC下安装docker教程

    MAC下安装docker教程

    Docker是当下十分火的一项技术,Docker使用了Linux-specific内核特定,所以在Mac OS X无法直接本地运行。但是可以通过安装Boot2Docker application实现。Boot2Docker包含了Virtual Box VM,Docker和Boot2Docker管理工具。
    2016-02-02
  • Docker安装logstash的详细过程

    Docker安装logstash的详细过程

    这篇文章主要介绍了Docker安装logstash的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Docker可视化管理工具DockerUI的使用

    Docker可视化管理工具DockerUI的使用

    这篇文章主要介绍了Docker可视化管理工具DockerUI的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Windows10系统下Docker默认存储位置更改方案

    Windows10系统下Docker默认存储位置更改方案

    这篇文章主要给大家介绍了关于Windows10系统下Docker默认存储位置更改方案的相关资料,在Docker中存储路径是一个重要的话题,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • 基于docker部署Jenkins的详细教程

    基于docker部署Jenkins的详细教程

    这篇文章主要介绍了基于docker部署Jenkins,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Docker部署SpringBoot的两种方法

    Docker部署SpringBoot的两种方法

    Docker是一种流行的容器化技术,可以帮助开发人员更轻松地构建、部署和运行应用程序,Spring Boot是一种快速开发框架,可以帮助开发人员更快地构建应用程序,本文主要介绍了Docker部署SpringBoot的两种方法,感兴趣的可以了解一下
    2023-10-10
  • Jenkins整合Docker实现CICD自动化部署的详细过程(若依项目)

    Jenkins整合Docker实现CICD自动化部署的详细过程(若依项目)

    本文介绍了如何使用Jenkins和Docker实现CI/CD自动化部署,文章介绍了环境准备,包括Jenkins、Docker、JDK、Node和Maven,然后讨论了如何配置GitLab环境并利用Webhooks实现代码的自动拉取和部署,最后,展示了如何部署前后端分离的项目,并通过实际操作验证了整个流程的有效性
    2024-10-10
  • pipework docker无法使用ip netns命令解决办法

    pipework docker无法使用ip netns命令解决办法

    这篇文章主要介绍了pipework docker无法使用ip netns命令解决办法的相关资料,需要的朋友可以参考下
    2016-10-10
  • 三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题

    三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题

    这篇文章主要介绍了三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-11-11
  • docker-compose的build使用方式

    docker-compose的build使用方式

    这篇文章主要介绍了docker-compose的build使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论