zoukankan      html  css  js  c++  java
  • 重构基础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文件

  • 相关阅读:
    fullCalendar改造计划之带农历节气节假日的万年历(转)
    Linked List Cycle
    Remove Nth Node From End of List
    Binary Tree Inorder Traversal
    Unique Binary Search Trees
    Binary Tree Level Order Traversal
    Binary Tree Level Order Traversal II
    Plus One
    Remove Duplicates from Sorted List
    Merge Two Sorted Lists
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13220054.html
Copyright © 2011-2022 走看看