当前位置:首页 > Web开发 > 正文

Docker之Alpine制作镜像且上传至阿里云

2024-03-31 Web开发

标签:

目的:          Alpine制作jdk镜像           alpine Linux简介

  Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc

     BusyBox以减少系统的体积和运行时的资源消耗。

    alpine Linux优点

    1、小巧基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;

    2、安全面向安全的轻量发行版;

    3、简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。

    4、适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。

 alpine操作系统官网(https://pkgs.alpinelinux.org/packages

技术图片

下面为官方镜像的容量对比:

  显而易见alpine的容量是非常小的

REPOSITORY TAG IMAGEID VIRTUAL SIZE alpine latest 4e38e38c8ce0 4.799 MB debian latest 4d6ce913b130 84.98 MB ubuntu latest b39b81afc8ca 188.3 MB centos latest 8efe422e6104 210 MB

   基于alpine制作JDK8镜像    1.下载镜像

docker pull alpine:latest

  

技术图片

2.创建并编辑dockerfile

touch Dockerfile vi Dockerfile

技术图片

Dockerfile文件中添加一下命令:

#1.指定基础镜像,并且必须是第一条指令 FROM alpine:latest #FROM alpine:3.10 #2.指明该镜像的作者和其电子邮件 MAINTAINER xxx "[email protected]" #3.在构建镜像时,指定镜像的工作目录,,之后的命令都是基于此工作目录,如果不存在,则会创建目录 WORKDIR /javaxh_docker/jdk #4.将一些安装包复制到镜像中,语法:ADD/COPY <src>... <dest> ## ADD与COPY的区别:ADD复制并解压,COPY仅复制 ADD jdk-8u221-linux-x64.tar.gz /javaxh_docker/jdk/ ## glibc安装包如果从网络下载速度实在是太慢了,先提前下载复制到镜像中 COPY glibc-2.29-r0.apk /javaxh_docker/jdk/ COPY glibc-bin-2.29-r0.apk /javaxh_docker/jdk/ COPY glibc-i18n-2.29-r0.apk /javaxh_docker/jdk/ #5.更新Alpine的软件源为阿里云,因为从默认官源拉取实在太慢了 RUN echo http://mirrors.aliyun.com/alpine/v3.10/main/ > /etc/apk/repositories && \ echo http://mirrors.aliyun.com/alpine/v3.10/community/ >> /etc/apk/repositories RUN apk update && apk upgrade #6.运行指定的命令 ## Alpine linux为了精简本身并没有安装太多的常用软件,apk类似于ubuntu的apt-get, ## 用来安装一些常用软V件,其语法如下:apk add bash wget curl git make vim docker ## wget是linux下的ftp/http传输工具,没安装会报错“/bin/sh:   wget: not found”,网上例子少安装wget ## ca-certificates证书服务,是安装glibc前置依赖 RUN apk --no-cache add ca-certificates wget && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ && apk add glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk && rm -rf /var/cache/apk/* glibc-2.29-r0.apk glibc-bin-2.29-r0.apk glibc-i18n-2.29-r0.apk #7.配置环境变量 ENV JAVA_HOME=http://www.mamicode.com/javaxh_docker/jdk/jdk1.8.0_221 ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH=$JAVA_HOME/bin:$PATH #容器启动时需要执行的命令 #CMD ["java","-version"]

其中安装glibc前置依赖,有三个文件,我是离线放进jdk文件夹中去的。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/41568.html