podman使用alpine镜像构建jdk指南
有关Dockerfile和Containerfile的区别简介
podman build页在描述项那里有进行简单的介绍。
大意是 Dockerfile和Containerfile文件的语法使用相同的语法,作用是一样的。
基础Dockerfile构建JDK17镜像文件
# syntax=docker/dockerfile:1
FROM alpine:3.17
# 改为阿里云的镜像仓库,因为快啊。
RUN sed -i.bak 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk upgrade
# 这里注意了,apk包管理器的包名和版本号是以=号进行分割的
RUN apk add --no-cache 'openjdk17-jre=17.0.6_p10-r0'
执行构建命令:podman build -f ./Dockerfile .
文件即可。
就可以通过podman images
看到构建出的镜像了。
然后通过podman run -idt <镜像>
执行镜像以启动一个新的容器。
构建完之后,可以使用podman attach 容器ID
进行附加到容器内部的命令行,之后就可以执行java -version
命令了。
由于我们是直接通过安装包进行安装的,配置JAVA_HOME和PATH环境变量的步骤都给省略了。
如果要删除镜像和对应的容器的话,那么执行podman rmi -f 镜像
即可删除。
当然如果有很多镜像和对应的容器都需要删除的话,并且有共同特征的话,可以使用如下命令进行删除:
podman rmi -f `podman images | grep '<none>' | awk '{print $3}'`
资源引用
- Dockerfile语法格式参考
- Dockerfile简单构建指南
- Docker基础镜像:scratch 和 alpine
- Alpine软件包Web搜索界面:alpinelinux packages 和 Alpine镜像总览
- 使用 Alpine Package Keeper ( apk)
- Alpine官网发布页面
- 阿里云Alpine镜像网
- Linux sed使用方法
- podman命令手册
复制请注明出处,在世界中挣扎的灰太狼