最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker自定義鏡像上傳至阿里云的實現(xiàn)

 更新時間:2024年04月14日 09:41:33   作者:空空bye  
本文主要介紹了Docker自定義鏡像上傳至阿里云的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、Alpine介紹

Alpine Linux是一個輕量級的Linux發(fā)行版,專注于安全、簡單和高效。它采用了一個小巧的內核和基于musl libc的C庫,使得它具有出色的性能和資源利用率。

Alpine Linux的主要特點包括:

  • 小巧輕量:Alpine Linux的安裝包非常小,只有幾兆字節(jié),這使得它在資源受限的環(huán)境中運行非常高效。

  • 安全可靠:Alpine Linux采用了一系列安全措施,包括堆棧保護、內核級別的防護和支持安全沙盒等,以確保系統(tǒng)的安全性和可靠性。

  • 簡單易用:Alpine Linux采用了簡單的設計理念,得它易于安裝、配置和維護。它使用了apk包管理器,可以方便地安裝、更新和刪除軟件包。

  • Docker友好:由于其小巧和高效的特性,Alpine Linux成為了Docker容器的首選基礎鏡像之一。它可以快速啟動和行,減少了容器的大小和啟動時間。

Alpine Linux適用于各種場景,包括服務器、虛擬機、容器和嵌入式設備等。它的社區(qū)活躍,并且有大量的軟件包可供選擇,可以滿足各種不同的需求。

二、基于alpine制作JDK8鏡像

下載鏡像

通過 docker pull 命令拉取最新版本的 alpine 鏡像文件。

docker pull alpine:latest

編寫Dockerfile

將資源中glibc_kongkong.zip的目錄下的所有文件上傳至與Dockerfile文件同一目錄下

創(chuàng)建并編輯Dockerfile文件。

# 創(chuàng)建Dockerfile文件
touch Dockerfile
# 編輯Dockerfile文件
vim Dockerfile

注:將資源綁定中的 glibc_kongkong 目錄下的所有文件上傳至與 Dockerfile 文件一個目錄下。

Dockerfile 文件內容具體如下:

#1.指定基礎鏡像,并且必須是第一條指令
FROM alpine:latest
#FROM alpine:3.10

#2.指明該鏡像的作者和其電子郵件
MAINTAINER kongkong "kongkong@qq.com"

#3.在構建鏡像時,指定鏡像的工作目錄,之后的命令都是基于此工作目錄,如果不存在,則會創(chuàng)建目錄
WORKDIR /usr/local/java

#4.將一些安裝包復制到鏡像中,語法:ADD/COPY <src>... <dest>
## ADD與COPY的區(qū)別:ADD復制并解壓,COPY僅復制
ADD jdk-8u151-linux-x64.tar.gz /usr/local/java/
## glibc安裝包如果從網(wǎng)絡下載速度實在是太慢了,先提前下載復制到鏡像中
COPY glibc-2.29-r0.apk /usr/local/java/
COPY glibc-bin-2.29-r0.apk /usr/local/java/
COPY glibc-i18n-2.29-r0.apk /usr/local/java/

#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”,網(wǎng)上例子少安裝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.配置環(huán)境變量
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_151
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

注意,這里用的是jdk-8u221-linux-x64.tar.gz版本的jdk安裝包,如果是其他版本的請注意修改上述配置中的名稱。

創(chuàng)建并啟動容器

通過 Dockerfile 文件創(chuàng)建自定義鏡像:

docker build -t jdk8:v2.0 .

基于最新 jdk8:v2.0 版本的鏡像構建容器:

docker run -itd --name tomcat02 jdk8:v2.0

進入容器并測試

進入容器:

docker exec -it 容器ID /bin/sh 

注意:最后是 sh 而非 bash

測試 java 的環(huán)境配置是否配置成功:

java -version

最后制作完成后的鏡像大小為400M左右。

三、JRE瘦身

將本地 jre-8u221-linux-x64.tar.gz 上傳至 CentOS7 虛擬機中。  

解壓文件:

tar -zxvf jre-8u221-linux-x64.tar.gz

查看 jre 大小(瘦身前230M):

du -sh jre1.8.0_221

 進入jre目錄,并執(zhí)行瘦身命令:

du -sh jre1.8.0_221

返回上級目錄,重新打包jre:  

# 返回上級目錄
cd ..
# 重新打包jre
tar zcvf jre1.8.0_221.tar.gz jre1.8.0_221

至此,JRE的壓縮包已完成了瘦身任務。

再次編輯Dockerfile

再次編輯Dockerfile,將文件內容中的jdk配置更換成jre配置:

#1.指定基礎鏡像,并且必須是第一條指令
FROM alpine:3.10

#2.指明該鏡像的作者和其電子郵件
MAINTAINER kongkong "kongkong@qq.com"

#3.在構建鏡像時,指定鏡像的工作目錄,之后的命令都是基于此工作目錄,如果不存在,則會創(chuàng)建目錄
WORKDIR /usr/local/java

#4.將一些安裝包復制到鏡像中,語法:ADD/COPY <src>... <dest>
## ADD與COPY的區(qū)別:ADD復制并解壓,COPY僅復制
## 注意~~~上傳的瘦身后的jre
ADD jre1.8.0_221.tar.gz /usr/local/java/
## glibc安裝包如果從網(wǎng)絡下載速度實在是太慢了,先提前下載復制到鏡像中
COPY glibc-2.29-r0.apk /usr/local/java/
COPY glibc-bin-2.29-r0.apk /usr/local/java/
COPY glibc-i18n-2.29-r0.apk /usr/local/java/

#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”,網(wǎng)上例子少安裝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.配置環(huán)境變量
## 注意~~~沒有jdk啦,直接指向jre
ENV JAVA_HOME=/usr/local/java/jre1.8.0_221
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

創(chuàng)建并啟動容器

 通過Dockerfile文件創(chuàng)建自定義鏡像:

docker build -t jdk8:v3.0 .

基于最新jdk8:v2.0版本的鏡像構建容器:

docker run -itd --name tomcat03 jdk8:v3.0

此處打包之后是v3.0版本的鏡像文件。

進入容器并測試

進入容器:

docker exec -it tomcat03 /bin/sh 

注意:最后是sh而非bash

測試java的環(huán)境配置是否配置成功:

java -version

四、將Docker鏡像上傳至阿里云

登錄到阿里云,阿里云官方網(wǎng)站鏈接:阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計算服務平臺

配置代碼源

點擊個人實例,打開倉庫管理,選擇代碼源。

具體操作自行摸索,簡單。  

創(chuàng)建命名空間

打開倉庫管理,選擇命名空間。

創(chuàng)建鏡像倉庫

 打開倉庫管理,選擇鏡像倉庫。首頁輸入倉庫相關信息,然后綁定代碼源。

推送鏡像

登錄阿里云Docker Registry

docker login --username=aliyun4534070281 registry.cn-hangzhou.aliyuncs.com

 注意:這里的--username請更換成自己阿里云的賬號。

 本地鏡像打標簽,請根據(jù)實際鏡像信息替換示例中的[ImageId][鏡像版本號]參數(shù)。:

docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/kongkongbye/kongbye:[鏡像版本號]

注意:這里的 [ImageId] 為本地鏡像的鏡像ID,而 [鏡像版本號] 為即將打標簽的版本號,用于推送至阿里云倉庫進行識別標記。

將鏡像推送到Registry:  

docker push registry.cn-hangzhou.aliyuncs.com/kongkongbye/kongbye:[鏡像版本號]

拉取鏡像

登錄阿里云Docker Registry:(如果已經(jīng)登錄過了,此步驟可以省略

docker login --username=aliyun4534070281 registry.cn-hangzhou.aliyuncs.com

注意:這里的--username 請更換成自己阿里云的賬號。

Registry中拉取鏡像:

docker pull registry.cn-hangzhou.aliyuncs.com/kongkongbye/kongbye:[鏡像版本號]

剩下的操作就是基于新拉取的鏡像進行創(chuàng)建容器等相關測試。

Docker commit 命令

  • 下載基礎鏡像

  • 使用此基礎鏡像創(chuàng)建/啟動/進入容器

  • 在容器安裝自己需要的軟件

  • 將保存配置完成的容器提交成鏡像

語法如下:  

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

參數(shù)說明:

參數(shù)說明
-a提交的鏡像作者
-c使用Dockerfile指令來創(chuàng)建鏡像
-m提交時的說明文字
-p在commit時,將容器暫停

實例:將容器a404c6c174a2 保存為新的鏡像,并添加提交人信息和說明信息

docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1

到此這篇關于Docker自定義鏡像上傳至阿里云的實現(xiàn)的文章就介紹到這了,更多相關Docker自定義鏡像上傳至阿里云內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:

相關文章

  • 部署OceanBase-ce全過程

    部署OceanBase-ce全過程

    這篇文章主要介紹了部署OceanBase-ce全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • docker配置鏡像加速器的兩種方式

    docker配置鏡像加速器的兩種方式

    本文主要介紹了docker配置鏡像加速器的兩種方式,包括全局配置和單次拉取指定鏡像源,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • docker 已經(jīng)運行的容器重命名

    docker 已經(jīng)運行的容器重命名

    有時我們將容器名字起的不太好,想改一下,本文主要介紹了docker 已經(jīng)運行的容器重命名,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • docker掛載本地目錄和數(shù)據(jù)卷容器操作

    docker掛載本地目錄和數(shù)據(jù)卷容器操作

    這篇文章主要介紹了docker掛載本地目錄和數(shù)據(jù)卷容器操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 解決Docker Desktop運行一直轉問題

    解決Docker Desktop運行一直轉問題

    遇到Docker啟動報錯、Docker Desktop運行不正常等問題,常見解決方案包括以管理員身份運行CMD,重啟Docker服務,恢復Docker Desktop出廠設置,啟用Windows功能等,最終通過運行cmd命令"netsh winsock reset"解決問題,但需注意此操作可能導致Docker鏡像丟失
    2024-09-09
  • centos7搭建docker私人倉庫的方法(kubernetes)

    centos7搭建docker私人倉庫的方法(kubernetes)

    這篇文章主要介紹了centos7搭建docker私人倉庫的方法(kubernetes),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • docker容器動態(tài)添加端口號的方法

    docker容器動態(tài)添加端口號的方法

    這篇文章主要介紹了docker容器動態(tài)添加端口號的方法,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • docker?跨平臺構建鏡像的示例詳解

    docker?跨平臺構建鏡像的示例詳解

    這篇文章主要介紹了docker跨平臺構建鏡像的案例,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 阿里云esc服務器Docker部署單節(jié)點Mysql的講解

    阿里云esc服務器Docker部署單節(jié)點Mysql的講解

    今天小編就為大家分享一篇關于阿里云esc服務器Docker部署單節(jié)點Mysql的講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 如何使用Docker部署FTP和Nginx并通過HTTP訪問FTP里的文件

    如何使用Docker部署FTP和Nginx并通過HTTP訪問FTP里的文件

    本文介紹了如何使用Docker部署FTP服務器和Nginx,并通過HTTP訪問FTP中的文件,通過將FTP數(shù)據(jù)目錄掛載到Nginx容器內,Nginx可以提供文件列表和下載功能,推薦使用Docker Compose來管理容器
    2025-03-03

最新評論

鄱阳县| 惠东县| 榆林市| 宜都市| 尚志市| 平利县| 无锡市| 新丰县| 香格里拉县| 贵德县| 石城县| 青岛市| 永安市| 池州市| 博兴县| 万盛区| 丹棱县| 苍溪县| 蒲江县| 安徽省| 麻江县| 蒙山县| 拉萨市| 东安县| 松桃| 陕西省| 九龙城区| 华亭县| 阳新县| 葵青区| 蒙自县| 仪征市| 资阳市| 静安区| 商水县| 宁波市| 墨竹工卡县| 昌乐县| 广汉市| 泸水县| 喀喇|