1. 程式人生 > >Docker commit 以官方映象為基礎,修改引數後,變為自己個性映象- eg:將映象時區UTC修改成CST

Docker commit 以官方映象為基礎,修改引數後,變為自己個性映象- eg:將映象時區UTC修改成CST

描述:工作中需要寫Dockerfile製作映象,發現生成的映象都是700M左右,為了更小更方便的製作映象,看了一些檔案,其中高效編寫Dockerfile的幾條準則,僅為參考。

下面是自己摸索出來的一個方法,簡單有效:

步驟:下載官方最小映象,然後執行,經過修改引數,配置,時區等內容,後用這個容器建立一個新的自己的映象。

具體步驟:以tomcat為例:

第一步驟下載映象:
官方預設的tomcat,大小是147M,時區是UTC是協調世界時(Universal Time Coordinated),不是我們需要的,而CST卻同時可以代表如下 4 個不同的時區,我們只需要配置China Standard Time就OK了。
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00


Cuba Standard Time UT-4:00

docker pull tomcat:7-alpine

第二步驟啟動tomcat映象,並指定容器和主機的對映埠:

docker run -p 8080:8080  tomcat:7-alpine

正常啟動後,可以訪問:localhost:8080
這裡寫圖片描述
第三步驟進入容器,檢視預設時間:

#檢視執行的全部容器
sai$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
949
fdc1d4001 tomcat:7-alpine "catalina.sh run" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp sad_thompson #拿到CONTAINER ID 然後進入正在執行容器並以命令列互動 sai:$ docker exec -it 949fdc1d4001 /bin/sh #進入容器後,檢視容器時間date /usr/local/tomcat # date Wed Aug 1 07:59:21 UTC 2018 /usr/local/tomcat #

第四步驟修改容器預設時間UTC修改成CST:
Shanghai時區時間,在centos中/usr/share/zoneinfo/Asia可以拿的,百度盤也放了一份
連結:

https://pan.baidu.com/s/1-Zc_nttBCcYaA2Ul9A_s1Q 密碼:xwme
這裡寫圖片描述

#首先從主機複製時間檔案到容器sudo docker cp host_path containerID:container_path
docker cp Shanghai  949fdc1d4001:/etc/localtime
#然後再修改時區,注意,要進入容器內執行:
echo "Asia/Shanghai" > /etc/timezone
#然後再查詢下
/usr/local/tomcat # cat /etc/timezone 

這裡寫圖片描述

第五步驟,Docker commit 命令 根據已修改的容器建立一個新的自己的映象:
先普及下知識
這裡寫圖片描述
這裡寫圖片描述

#製作映象-a 是作者,-m是描述
sai:~ ws$ docker commit  -a "Honglei" -m "change time zone:CST" 949fdc1d4001  honglei/mydemo/tomcat7:latest
sha256:4355e2ccc12ebf8c2295e2fcded052152877359e292636f55eed3ed6d64c131d
#檢視製作後的映象,以後再執行或者上傳自己的映象倉庫,顯示時間就是CST了。
sai:~ ws$ docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
honglei/mydemo/tomcat7        latest              4355e2ccc12e        5 seconds ago       147MB
tomcat                        7-alpine            7ec7cfc3ee20        15 hours ago        147MB

以後在這個tomcat中執行專案,日誌時間也是CST,不會再有時差。

相關推薦

Docker commit 官方映象基礎修改引數變為自己個性映象- eg映象時區UTC修改CST

描述:工作中需要寫Dockerfile製作映象,發現生成的映象都是700M左右,為了更小更方便的製作映象,看了一些檔案,其中高效編寫Dockerfile的幾條準則,僅為參考。 下面是自己摸索出來的一個方法,簡單有效: 步驟:下載官方最小映象,然後執行,經過修

tomcat映象基礎部署war包再做成映象

#以互動的方式啟動本地的映象tomcat:hps,並且將本地目錄/mnt/iso掛在到容器中的/tmp/repositories目錄,方便從本地獲取一些安裝檔案並進行一些操作docker run -i -t -v /mnt/iso:/tmp/repositories tom

【從零開始】-搭建《平行宇宙基礎既可以用文字還可以用圖片視頻也沒有問題的講故事網站》-2起步(主頁面的完成與發布)

AD復制 亂七八糟 按鈕 一起 ini vue 地址 tst initial 《001-開發環境》寫的亂七八糟的,但相信大家已經都會了(感覺稍微學過的水平水平就在咱之上了@@),現在終於要進入正題了!!! 原本想前後臺一起寫的,突然發現先把前臺寫完可以盡早裝逼就準備先寫後臺

【從零開始】-搭建《平行宇宙基礎既可以用文字還可以用圖片視訊也沒有問題的講故事網站》-2起步(主頁面的完成與釋出)

《001-開發環境》寫的亂七八糟的,但相信大家已經都會了(感覺稍微學過的水平水平就在咱之上了@@),現在終於要進入正題了!!! 原本想前後臺一起寫的,突然發現先把前臺寫完可以儘早裝逼就準備先寫後臺了==! 一:使用Git和GitHub管理《以平行宇宙為基礎既可以用文字,還可以用圖片,視訊也沒有問題的講故事網

mybatis-generator基礎的外掛擴充套件jeasy-mybatis-generator目前擴充套件了分頁外掛和模板外掛

jeasy-mybatis-generator原始碼生成外掛 jeasy-mybatis-generator以mybatis-generator為基礎擴充套件外掛,目前擴充套件了分頁外掛和模板外掛 test包中的程式碼結構,可以直接執行測試 分頁外掛使用 在

【081】使用Nginx的官方Docker映象啟動容器無法顯示自己網站頁面總顯示Nginx官方預設頁面的問題的解決方法

問題重現 自己編寫一個 index.html 檔案。index.html的內容任意,在本文不做過多討論。在宿主機上建立如下目錄結構: /your/path/front ├─config │ └─nginx.conf │ └─p

Point類基礎定義一個平面中的Circle類

課堂練習3: 以Point類為基礎,定義一個平面中的Circle類: 1、 編寫一個無參的建構函式; 2、 編寫一個有參的建構函式; 3、 在主函式中呼叫無參的建構函式生成圓的例項c1,呼叫有參的建構函式生成圓的例項c2,呼叫例項方法判斷c1和c2是否相重疊。 packa

構建flask-restful基礎的restful API

原文連結:https://dev.to/aligoren/building-basic-restful-api-with-flask-restful-57oh 這是我第一次在我的部落格上傳送這篇文章 大家好,在這篇文章中,我將講述關於使用構建以flask框架為基礎的restful AP

BigDecimal類和BigDecimal類基礎定義類Arith工具類

一、認識 float和double兩種資料型別容易引起精度的丟失,所以java提供BigDecimal類提高精度。該類提供了大量的構造器用於 建立BigDecimal 物件,把所有的基本數值型別變數轉換成一個BigDecimal物件。 二、常用的兩個構造器: 1、Big

在建立server的時候選擇tomcat8server name並且無法手動輸入同時無法進行下一步操作。

解決方案如下: 1.退出eclipse。 2.找到eclipse[工作空間][當前專案].metadata/.plugins/org.eclipse.core.runtime/.settings/下 3.刪除兩個檔案,檔名是org.eclipse.wst.server.core.pref

二叉樹中序資料, 先序或者根, 建立二叉樹

#include<iostream> using namespace std; struct Tree{ int v; Tree *left, *right; }; Tree *create_node(int v){ Tree *node = new Tree; node

普元 EOS Platform 7.5 datagrid裡使用nui-datepicker日期型別設定dateFormat="yyyy-MM-dd"但編輯日期顯示仍包含時分秒

【問題】 EOS Platform 7.5 datagrid裡使用nui-datepicker,將日期型別設定為dateFormat="yyyy-MM-dd",但編輯後,日期顯示仍包含時分秒 編輯前,顯示為年月日: 編輯後,現在顯示為年月日時分秒 【解答】

新機首次安裝 app請求網路許可權“是否允許使用資料”點允許首頁資料

      現在發現一個問題,在iOS10以上中,當app在手機第一次安裝的時候,蘋果會預設彈出一個是否允許app使用資料的彈框,允許後首頁一片空白,之前做那個app沒在關注過這一次,因為首頁有下拉重新整理這個功能,並且這個問題是這個裝置第一次安裝才出現,也沒太關注過這個問

win10 圖標異常 重命名圖標不顯示名字錯亂。

targe list sig lis album alt .html 技術分享 任務 win10 圖標異常 ,重命名後,圖標不顯示,名字錯亂。 按下快捷鍵 Win+R,在打開的運行窗口中輸入 %localappdata%,回車。 在打開的文件夾中,找到 Icon

jquery 使用ajax正常返回不執行success的問題

原因 ron per type data com 嚴格 ann col 背景: 在使用到jQuery的ajax時,如果指定了dataType為json,老是不執行success回調,而是執行了error回調函數. 原因: 然後繼續下載了幾個

excel 如何 篩選以及篩選在復制時 顯示 不可對多重選定區域使用此命令的解決辦法

多重 一個 結束 就會 class exc clas 選擇 單獨 excel 如何 篩選,以及篩選後,在復制時 顯示 不可對多重選定區域使用此命令的解決辦法選中 第一行, 開始 篩選 選擇 某一列 右下角的小三角 ,進行內容篩選 即可。 excel 篩選後,在復制時 顯示

vue項目npm installnpm run dev報錯問題

HERE 運行 err The too web nbsp stat 解決 報錯:   ERR! code ELIFECYCLE  npm ERR! errno 1  npm ERR! [email protected] dev: `node build/dev-server.js`

執行APP顯示兩個APP圖示一個打不開刪除一個另一個也會消失。

可能原因:你添加了兩個intent-filter 的LAUNCHER 事件,這種情況尤其在一個專案多個module的時候容易出現            <intent-filter>       &nbs

Jquery Datatable 單行修改儲存頁碼不跳動的實現

使用表格顯示時,經常有這樣的場景: 我們需要對當行的資料進行修改操作,點選修改彈出修改的頁面,當修改結束後,重新整理表格顯示 這樣,通常dataTable會refreshi一遍,從第一頁開始顯示。 為了更好的體驗,當儲存後,希望表格資料得到了重新整理,當前頁碼資料也不會丟失,重新整理