吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Dockerfile制作openGauss鏡像

OSC開源社區 ? 來源:OSC開源社區 ? 作者:OSC開源社區 ? 2022-12-07 15:08 ? 次閱讀

容器鏡像是一個不可變的只讀文件,基于相同鏡像文件創建啟動的容器,都將獲得完全相同的Docker容器。容器是鏡像的實例,具有生命周期。

之前幾期使用的openGauss鏡像是云和恩墨提供的,openGauss源碼中已經提供了制作腳本,可以直接使用,本篇介紹根據openGauss開源代碼倉已有的Docker build腳本來制作openGauss 3.0.0鏡像,自己制作的鏡像會更加安全可靠,也更方便DevOps用戶的安裝、配置和環境設置。

e161f250-75fb-11ed-8abf-dac502259ad0.png

環境準備

本篇使用的是:x86 ECS云服務器+CentOS 7.6

另外,ARM64 openEuler 20.03 LTS也是支持的

PS:鏡像制作的話請盡量使用公網環境,內網的話可能會遇到各種奇怪的問題,即使配置好了內網yum源等也還是報錯。

docker 安裝&配置

1、參考之前《【云原生】使用Docker部署openGauss》的步驟安裝并啟動docker服務。yum源使用的是華為云。

yum install -y yum-utils 
wget -O /etc/yum.repos.d/docker-ce.repo http://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo 
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo 
sudo yum makecache fast 
sudo yum install docker-ce 
systemctl enable docker  
systemctl start docker  
systemctl status docker

2、設置docker加速。由于國內直接訪問`docker hub`網速很慢,拉取鏡像的時間很長。通常我們使用鏡像加速或者從國內的一些平臺鏡像倉庫上拉取。新建`daemon.json`文件。

[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# cd /etc/docker/ 
[root@iZ2zegavrsiopm50rp12ygZ docker]# ll 
total 4 
-rw------- 1 root root 244 Aug  2 21:21 key.json 
[root@iZ2zegavrsiopm50rp12ygZ docker]# vi daemon.json

配置幾條國內的加速地址。我這分別是Docker中國區的、網易的和中國科技大學的。

{ 
 
        "registry-mirrors": [  
        "https://registry.docker-cn.com", 
        "http://hub-mirror.c.163.com", 
              "https://docker.mirrors.ustc.edu.cn"] 
 
}

貼完以后, `:wq`重啟docker服務使配置生效。

[root@iZ2zegavrsiopm50rp12ygZ docker]# systemctl daemon-reload  
[root@iZ2zegavrsiopm50rp12ygZ docker]# service  docker restart 
Redirecting to /bin/systemctl restart docker.service

使用Docker build的方式生成openGauss 3.0.0鏡像鏡像

1、獲取openGauss企業版3.0.0的安裝包和源碼文件。這里我用的是CentOS,選擇的是企業版。對于只是想體驗一下的同學來說選擇輕量版就足夠了,步驟和主要功能是一樣的,優點是包更小,占用存儲空間更少,缺點是裁掉了一些功能,具體差別見官方文檔。

[root@iZ2zegavrsiopm50rp12ygZ ~]# wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/x86/openGauss-3.0.0-CentOS-64bit-all.tar.gz 
[root@iZ2zegavrsiopm50rp12ygZ opt]# wget https://gitee.com/opengauss/openGauss-server/repository/archive/master.zip

環境沒有`unzip` ,自己先裝一個。然把源碼包master.zip解壓得到`openGauss-server-master`文件夾,軟件安裝包`openGauss-3.0.0-CentOS-64bit-all.tar.gz`解壓獲得二進制安裝包`openGauss-3.0.0-CentOS-64bit.tar.bz2`

[root@iZ2zegavrsiopm50rp12ygZ opt]# yum install unzip 
[root@iZ2zegavrsiopm50rp12ygZ opt]# unzip master.zip  
[root@iZ2zegavrsiopm50rp12ygZ opt]# tar -zvxf openGauss-3.0.0-CentOS-64bit-all.tar.gz  
 
[root@iZ2zegavrsiopm50rp12ygZ opt]# ll 
total 424680 
-rw-r--r--  1 root root 201796837 Aug  2 21:04 master.zip 
-rw-r--r--  1 root root 116068945 Apr  1 18:39 openGauss-3.0.0-CentOS-64bit-all.tar.gz 
-rw-r--r--  1 root root       105 Apr  1 18:26 openGauss-3.0.0-CentOS-64bit-cm.sha256 
-rw-r--r--  1 root root   6201097 Apr  1 18:26 openGauss-3.0.0-CentOS-64bit-cm.tar.gz 
-rw-r--r--  1 root root        65 Apr  1 18:25 openGauss-3.0.0-CentOS-64bit-om.sha256 
-rw-r--r--  1 root root  14139662 Apr  1 18:25 openGauss-3.0.0-CentOS-64bit-om.tar.gz 
-rw-r--r--  1 root root        65 Apr  1 18:26 openGauss-3.0.0-CentOS-64bit.sha256 
-rw-r--r--  1 root root  96246093 Apr  1 18:26 openGauss-3.0.0-CentOS-64bit.tar.bz2 
drwxr-xr-x 13 root root      4096 Aug  2 19:27 openGauss-server-master 
-rw-------  1 root root        65 Apr  1 18:24 upgrade_sql.sha256 
-rw-------  1 root root    383932 Apr  1 18:24 upgrade_sql.tar.gz

e171d576-75fb-11ed-8abf-dac502259ad0.png

2、因為現在要制作的是`3.0.0`版本的鏡像包,源碼下面并沒有這個版本,所以需要修改一些配置。將dockerfiles代碼庫1.1.0拷貝一份另存為3.0.0。將二進制安裝包`openGauss-3.0.0-CentOS-64bit.tar.bz2`放到`dockerfiles`文件夾下面。因為我的是X86架構修改`dockerfile_amd`文件,主要是替換版本號。使用arm架構的同學則需要修改`dockerfile_arm`

[root@iZ2zegavrsiopm50rp12ygZ opt]# cd openGauss-server-master/docker/dockerfiles/ 
[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# mkdir 3.0.0 
[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# cp 1.1.0/* 3.0.0/ 
 
[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# cp /opt/openGauss-3.0.0-CentOS-64bit.tar.bz2 3.0.0/ 
[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# sed -i "s/openGauss-1.1.0-CentOS-64bit.tar.bz2/openGauss-3.0.0-CentOS-64bit.tar.bz2/g" 3.0.0/dockerfile_amd

3、在dockerfiles文件夾下運行`buildDockerImage.sh`。`-i` 表示不對二進制包進行MD5檢查。`-v`表示設置的版本參數`buildDockerImage.sh`是封裝后的制作腳本,它執行時會根據當前OS的架構是X86還是Arm去調用真正的制作鏡像的`dockerfile`文件。`dockerfile`文件就像是一個配方,將作鏡像需要的工具、依賴庫、系統等統統寫進來。有興趣的小伙伴可以觀察一下整個的鏡像生成流程。

[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# sh buildDockerImage.sh -v 3.0.0 -i 
Checking Docker version. 
Ignored MD5 checksum. 
========================== 
DOCKER info: 
Client: 
 Context:    default 
 Debug Mode: false 
 Plugins: 
  app: Docker App (Docker Inc., v0.9.1-beta3) 
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker) 
  scan: Docker Scan (Docker Inc., v0.17.0) 
 
Server: 
 Containers: 0 
  Running: 0 
  Paused: 0 
  Stopped: 0 
 Images: 0 
 
 ...此處省略若干回顯 
 ---> 7e3ef9a88226 
Successfully built 7e3ef9a88226 
Successfully tagged opengauss:3.0.0 
 
  openGauss Docker Image  3.0.0 is ready to be extended:  
 
    --> opengauss:3.0.0 
 
  Build completed in 73 seconds.

整個過程用了大概一分鐘。

根據官方說明,運行buildDockerImage.sh腳本時,如果不指定-i參數,此時默認提供MD5檢查,需要您手動將校驗結果寫入md5_file_amd64文件。

## 在dockerfiles/3.0.0目錄下修改md5校驗文件內容 
md5sum openGauss-3.0.0-CentOS-64bit.tar.bz2  
## 將校驗信息寫入校驗文件md5_file_amd64中 
echo "58b9a029719f2d9d32b7d619c850735c openGauss-3.0.0-CentOS64bit.tar.bz2" > md5_file_amd64

4、查看制作的鏡像,第一條opengauss 3.0.0 就是。體積稍微有點大,到了664M。

[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# docker images 
REPOSITORY   TAG        IMAGE ID       CREATED         SIZE 
opengauss    3.0.0      7e3ef9a88226   2 minutes ago   664MB 
centos       7.6.1810   f1cb7c7d58b7   3 years ago     202MB

e189e99a-75fb-11ed-8abf-dac502259ad0.png

驗證容器鏡像

使用鏡像啟動然后登錄容器,連接openGauss數據庫進行驗證。

[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]#docker run --name wxxopengauss --privileged=true -d -e GS_PASSWORD=Gauss@123 -p 15432:5432 -v /var/lib/opengauss opengauss:3.0.0 
[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# docker ps 
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                     NAMES 
dc910aeaac18   opengauss:3.0.0   "entrypoint.sh gauss…"   46 seconds ago   Up 45 seconds   0.0.0.0:15432->5432/tcp   wxxopengauss 
[root@iZ2zegavrsiopm50rp12ygZ dockerfiles]# docker exec -it dc910aeaac18 /bin/bash 
[root@dc910aeaac18 /]# su - omm 
[omm@dc910aeaac18 ~]$ gsql 
omm=# create user wxx with password "Gauss@123"; 
omm=# alter user wxx sysadmin; 
omm=# grant all on schema public to wxx; 
omm=# create table test(id int); 
omm=# insert into test values(886); 
omm=# select * from test;    

數據庫使用正常,鏡像制作成功。

e199a47a-75fb-11ed-8abf-dac502259ad0.png

openGauss: 一款高性能、高安全、高可靠的企業級開源關系型數據庫。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3848

    瀏覽量

    64690
  • 容器
    +關注

    關注

    0

    文章

    499

    瀏覽量

    22125
  • 鏡像
    +關注

    關注

    0

    文章

    170

    瀏覽量

    10802

原文標題:使用Dockerfile制作openGauss鏡像

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Docker-鏡像的分層-busybox鏡像制作

    容器修改了基礎鏡像的內容,比如 /etc 下的文件,這時其他容器的 /etc 是否也會被修改? 可寫層的概念: Cpoy-on-Write 知識點6:制作一個busybox鏡像 1、編寫Doc
    的頭像 發表于 01-15 10:44 ?133次閱讀
    Docker-<b class='flag-5'>鏡像</b>的分層-busybox<b class='flag-5'>鏡像</b><b class='flag-5'>制作</b>

    華為云 X 實例的鏡像管理詳解

    前言 隨著云計算的不斷普及,云服務器成為企業和開發者日常工作中的重要工具。為了提升工作效率和降低運維成本,云服務器鏡像的管理尤為重要。鏡像作為服務器或磁盤的模板,預裝了操作系統、軟件及配置,是快速
    的頭像 發表于 01-07 17:01 ?142次閱讀
    華為云 X 實例的<b class='flag-5'>鏡像</b>管理詳解

    Dockerfile鏡像制作與Docker-Compose容器編排

    Dockerfile鏡像制作 docker/podman中, 鏡像是容器的基礎,每次執行docker run的時候都會指定哪個基本鏡像作為容
    的頭像 發表于 01-07 11:01 ?173次閱讀
    <b class='flag-5'>Dockerfile</b><b class='flag-5'>鏡像</b><b class='flag-5'>制作</b>與Docker-Compose容器編排

    OpenHarmony通過掛載鏡像來修改鏡像內容,RK3566鴻蒙開發板演示

    OpenHarmony通過掛載鏡像來修改鏡像內容的教程,提高修改鏡像內容效率!
    的頭像 發表于 01-03 14:21 ?178次閱讀
    OpenHarmony通過掛載<b class='flag-5'>鏡像</b>來修改<b class='flag-5'>鏡像</b>內容,RK3566鴻蒙開發板演示

    矚目!海量數據再獲2024年度openGauss社區突出貢獻單位

    12月27日,備受矚目的openGaussSummit2024在北京盛大舉行。本次峰會匯聚了數據庫行業的眾多精英與領袖,共同探討數據庫技術的最新進展與未來趨勢。海量數據作為openGauss社區
    的頭像 發表于 12-30 10:09 ?156次閱讀
    矚目!海量數據再獲2024年度<b class='flag-5'>openGauss</b>社區突出貢獻單位

    軟通動力榮膺“openGauss社區突出貢獻單位”

    12月27日,主題為“匯聚數據庫創新力量,引領智能時代新未來”的openGauss Summit 2024在北京召開。大會由openGauss社區和全球計算聯盟主辦,軟通動力等社區成員單位共同協辦
    的頭像 發表于 12-27 18:47 ?423次閱讀

    提升DevOps效率,從基礎到進階的Dockerfile編寫技巧

    目錄 Dockerfile 基本結構 指令 創建鏡像(centos版) 創建鏡像(alpine版) 基本結構 Dockerfile 是一個文本格式的配置文件,用戶可以使用
    的頭像 發表于 11-26 09:44 ?140次閱讀
    提升DevOps效率,從基礎到進階的<b class='flag-5'>Dockerfile</b>編寫技巧

    躍昉科技正式加入openGauss社區

    日前,躍昉科技簽署CLA(Contribution License Agreement,貢獻許可協議),正式加入openGauss社區,致力于推動openGauss RISC-V SIG的發展。
    的頭像 發表于 10-18 09:28 ?475次閱讀

    手動構建Docker鏡像的方法

    不推薦使用docker commit命令,而應該使用更靈活、更強大的dockerfile來構建docker鏡像
    的頭像 發表于 08-05 15:30 ?591次閱讀
    手動構建Docker<b class='flag-5'>鏡像</b>的方法

    ARM平臺實現Docker容器技術

    。(定制應用鏡像來實現集成、持續支付、部署。開發人員可以通過dockerfile來進行鏡像構建,并結合持續集成系統進行集成測試,而運維人員則可直接在生產環境中快速部署該鏡像,甚至結合持
    發表于 07-25 14:36

    ARM平臺實現Docker容器技術

    應用鏡像來實現集成、持續支付、部署。開發人員可以通過dockerfile來進行鏡像構建,并結合持續集成系統進行集成測試,而運維人員則可直接在生產環境中快速部署該鏡像,甚至結合持續部署系
    發表于 07-17 11:05

    中軟國際亮相openGauss Developer Day 2024

    2024年6月21日,數據庫技術界的年度盛事——openGauss Developer Day 2024在北京昆泰嘉瑞文化中心盛大開幕。這場由openGauss社區主辦的大會,吸引了來自全國各地的數據庫開發者、技術專家和行業領袖,共同探討數據庫技術的最新趨勢和應用實踐。
    的頭像 發表于 06-22 09:28 ?698次閱讀

    華中科技大學開源鏡像站上線44個軟件鏡像,歡迎下載

    此站早在去年11月即在學校內部試運行,正式開放之前,已積累大量開放資源,包括44款開源軟件的最新版本。截至目前,該鏡像庫已有超40TB的有效鏡像數據。
    的頭像 發表于 05-09 15:53 ?668次閱讀

    UltralIOS制作啟動盤步驟

    1、打開UltraISO工具。 2、點擊文件-打開-選擇鏡像。 3、選擇好鏡像后,點擊啟動-寫入硬盤映像。 4、選擇硬盤驅動器,選擇好后點擊寫入-等待制作完成。
    的頭像 發表于 03-08 14:46 ?639次閱讀
    UltralIOS<b class='flag-5'>制作</b>啟動盤步驟

    UltralIOS制作啟動盤步驟

    1.打開UltraISO工具 2.點擊文件-打開-選擇鏡像 ? 3.選擇好鏡像后,點擊啟動-寫入硬盤映像 ? 4.選擇硬盤驅動器,選擇好后點擊寫入-等待制作完成 ? 審核編輯 黃宇
    的頭像 發表于 03-04 16:48 ?986次閱讀
    UltralIOS<b class='flag-5'>制作</b>啟動盤步驟
    百家乐官网事电影| 百家乐官网赌场视屏| 威尼斯人娱乐场老品牌| 百家乐官网赢一注| 永登县| 布加迪百家乐的玩法技巧和规则| 百家乐官网赌博出千| 澳门赌百家乐打法| 电脑打百家乐官网怎么赢| 汕尾市| 大发888 护栏| 新世纪娱乐成| 曼哈顿百家乐的玩法技巧和规则| 百家乐官网游戏合法吗| 大发888官网免费58| 百家乐英皇娱乐场开户注册| 澳门百家乐官网棋牌游戏| 视频百家乐| 大发888 bet娱乐场下载| 百家乐永利娱乐场| 百家乐总厂在哪里| 利都百家乐官网国际娱乐场开户注册| 在线百家乐游戏软件| 赌场百家乐官网怎么破解| 浦东新区| 荥经县| 凤山市| 真钱百家乐赌博| 百利宫百家乐官网的玩法技巧和规则| 大发888娱乐真钱游戏 官方| 百家乐娱乐平台会员注册| 宝博百家乐娱乐城| 百家乐平台出租家乐平台出租| 百家乐官网游戏机价格| 新2百家乐官网现金网百家乐官网现金网 | 澳门百家乐官网玩大小| 威尼斯人娱乐城进不了| 马尼拉百家乐的玩法技巧和规则| 百家乐官网论坛| 通榆县| 百家乐官网视频二人麻将|