• 重构基础docker镜像


    一开始是使用的构建最小JDK Docker镜像文章构架你的基础docker镜像,但是在使用过程中发现有些命令会用到,比如culr命令等,在这个镜像的基础上进行添加配置的话太费事了,改用alpine重构docker基础镜像

    新增:
    阿里云仓库的alpine尽可能使用最新的,这样一来,下载使用的openjdk8才能使用最新版的版本,老版本会有各种问题。
    查看版本地址:http://mirrors.aliyun.com/alpine/

    如下教程使用的是v3.6版本,但是已经有v3.12版本了
    v3.6版本安装的java是1.8.0_212版本
    v3.12版本安装的java是1.8.0_242版本

    所以若使用的话,请使用最新版本的进行安装

    仔细看上图,注意有个latest-stable
    使用下面的这个可以始终使用最新版的

    RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/main/" > /etc/apk/repositories
    RUN echo "https://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
    

    新建Dockerfile文件

    /usr/local/src/jre # cp /etc/localtime . 
    /usr/local/src/jre # touch  timezone 
    /usr/local/src/jre # echo "Asia/Shanghai" >> timezone  
    
    /usr/local/src/ # ll                                                                                                   
    -rw-r--r--  1 root  root   348 7月   1 16:24 Dockerfile_alpine
    -rw-r--r--  1 root  root    14 6月  18 11:44 timezone
    -rw-r--r--  1 root  root   556 6月  18 11:41 localtime
    
    /usr/local/src/ # cat Dockerfile_alpine
    FROM alpine
    MAINTAINER sandu <1103324414@qq.com>
    COPY localtime /etc/localtime
    COPY timezone /etc/timezone
    RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" > /etc/apk/repositories
    RUN echo "https://mirrors.aliyun.com/alpine/v3.6/community/" >> /etc/apk/repositories
    RUN ["apk","update"]
    RUN ["apk","add","curl"]
    RUN ["apk","add","openjdk8"]
    

    构造镜像

    docker build -t idocker.io/jre:1.8.0_212 -f Dockerfile_alpine .

    查看镜像

    /usr/local/src/ # docker images                                                                                 
    REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
    idocker.io/jre               1.8.0_212           43884e29a144        5 seconds ago       102MB
    alpine                       latest              a24bb4013296        4 weeks ago         5.57MB
    

    运行镜像

    /usr/local/src/ # docker run -it idocker.io/jre:1.8.0_212                                                  
    / # curl --version
    curl 7.61.1 (x86_64-alpine-linux-musl) libcurl/7.61.1 LibreSSL/2.5.5 zlib/1.2.11 libssh2/1.8.2
    Release-Date: 2018-09-05
    Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
    Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy 
    / # java -version
    openjdk version "1.8.0_212"
    OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
    OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
    / # date
    Wed Jul  1 16:36:59 CST 2020
    / # 
    

    推送到nexus上的docker镜像仓库

    /usr/local/src/ # docker push idocker.io/jre:1.8.0_212                                                    
    The push refers to repository [idocker.io/jre]
    2eca1ded193a: Pushed 
    53ba1eb3fd81: Pushed 
    b395cf06f961: Pushed 
    d80528bc0a2d: Pushed 
    374309465db4: Pushed 
    aa932aa3e1ca: Pushed 
    6b9ae09f37ea: Pushed 
    50644c29ef5a: Layer already exists 
    1.8.0_212: digest: sha256:d223e4aa153e2c85f038dd2510e8ac389bad1c1927e7923784d9d5da30c5f2fb size: 1990
    

    注意事项

    若是还需要安装其他软件,只需要在Dockerfile_alpine文件中按照原有的继续添加就行了
    可以参考这篇文章:https://www.cnblogs.com/sanduzxcvbnm/p/13219846.html来搜索软件,然后再修改Dockerfile_alpine文件

  • 相关阅读:
    springCloud 服务间相互调用
    不同环境下整合相同格式的文件
    Linux 安装mysql
    利用Maven打War包引入本地Jar包
    linux服务器部署项目详细步骤
    DM数据库导入dmp文件报大小写敏感问题解决办法
    synchronized 实现过程
    TypeScript学习笔记
    @RequestMapping注解详解
    常用的Linux命令
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13220054.html
Copyright © 2020-2023  润新知