通过Dockerfile制作docker镜像

简介: 通过Dockerfile制作docker镜像

前言


因为需要在k8s里用docker跑一些定时任务, 所以顺便写一下制作docker镜像的基本流程


准备工作


首先肯定是要先设置docker加速了, 毕竟使用官方的太慢了(疯狂吐槽), 阿里云地址可以在 https://cr.console.aliyun.com 获取自己的镜像加速器地址, 获取之后打开docker配置复制里面就可以了, 阿里云下面也有各个操作系统的配置方法


image.png


开始操作


工作目录


首先建个文件夹, 然后随便写个print测试用例, 就在docker里面跑这个文件了

不要对time.sleep产生误解, 我这跑的是个脚本不是服务, 脚本完成后容器就关闭了

20190628164037481.png

Dockerfile编写

# 编写Dockerfile
# 设置基础镜像 这里我选择了python3.6版本的镜像
FROM python:3.6
# 作者描述信息
LABEL maintainer="xiaofei"
# copy当前目录的文件到镜像里面的 /xiaofei(自己的工作目录)目录下
COPY . /xiaofei
# 指定路径
WORKDIR /app/
# 执行命令  这里给test.py增加执行权限
RUN ["chmod", "+x", "/xiaofei/test.py"]
# 容器入口, 执行命令
CMD ["python3.6", "/xiaofei/test.py"]
# 如果需要执行较多命令的话可以写个shell脚本, 然后通过执行shell来调用
# CMD ["sh","-c","/xiaofei/cron.sh"]
# 制作docker镜像  后面替换称自己的镜像仓库地址
# docker build  -t  xiaofei/test:v1.0 .
# 如果有自己的镜像仓库的话制作完测无误就提交就ok了
# docker push xiaofei/test:v1.0


打包镜像


打包命令我写在Dockerfile最下面了, 直接复制就行, 记住docker打包一定要在Dockerfile当前目录, 记住docker打包一定要在Dockerfile当前目录, 记住docker打包一定要在Dockerfile当前目录(三遍)


image.png

这样就打包成功了, 然后调用docker images 命令查看镜像并启动

20190628170256178.png

20190628170316868.png

这样就ok了, 是不是很简单

最后附上Dockerfile指令详解 https://yq.aliyun.com/articles/652685

目录
相关文章
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
653 32
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
264 77
docker load 后镜像名称为空的问题解决
Docker在容器化应用程序时提供了强大的镜像管理功能,但也可能在某些操作中遇到如镜像名称为空的问题。通过理解问题的成因并采取适当的解决方案,如正确保存和加载镜像、手动修复标签等,可以有效避免和解决这一问题。通过本文提供的指导,您可以确保在使用Docker进行镜像操作时更为顺利,并提高容器管理的效率。
335 82
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
119 17
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
219 21
Kubernetes与Docker参数对照:理解Pod中的command、args与Dockerfile中的CMD、ENTRYPOINT。
需要明确的是,理解这些都需要对Docker和Kubernetes有一定深度的理解,才能把握二者的区别和联系。虽然它们都是容器技术的二个重要组成部分,但各有其特性和适用场景,理解它们的本质和工作方式,才能更好的使用这些工具,将各自的优点整合到生产环境中,实现软件的快速开发和部署。
136 25
Docker平台上的Redis镜像运行
这就是如何在Docker平台上运行Redis镜像的全部过程。走进Docker和Redis的世界,探索更多可能!
277 10
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等