Dockerfile文件编写及构建镜像命令解析
时间:2025-12-21 02:30:05|栏目:其它服务器|点击: 次
目录
- 指令解析
- 简单的Dockerfile文件
- Build命令添加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编写构建镜像命令的资料请关注其它相关文章!
栏 目:其它服务器
本文地址:https://zz.feitang.co/server/32339.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





