1. 程式人生 > >基於已有的image,建立docker images

基於已有的image,建立docker images

首先我們得知道怎麼下載映象:

docker search 映象名稱                                         //電腦聯網情況下在docker HUB裡面查詢映象
docker pull 倉庫伺服器/倉庫/映象名稱:標籤         //通過查詢到的映象資訊來下載映象

第一個方法:在執行的container中安裝service然後匯出為image

整體思路:執行一個容器,在執行容器的基礎上新增需要的服務,然後匯出為新的images。

[root@localhost ~]#docker run -it docker.io/centos     //根據image執行容器
[root@845e8472f250 /]# //執行容器的ID號 [root@845e8472f250 /]# yum -y install ***** //安裝一些服務 [root@845e8472f250 /]# exit

命令中 i 、t 的引數可以docker run –help檢視

現在的容器很明顯已經被我們改動了,然後通過以下命令新建images:

docker commit -m “Description” -a “users <[email protected]>” 845e8472f250 centos:v1

-m:來指定提交的說明資訊
-a:指定更新的作者和郵箱
命令中的一串數字是剛才執行container’s ID
數字後面的是新建映象的repository:tag

Complete

第二個方法:基於dockerfile檔案來建立新的image

整體思路:新建一個dockerfile,檔名必須是dockerfile,寫入命令。建立完使用docker build命令來建立新image。

dockerfile檔案中基本分為4部分:
1.註釋部分
2.基礎映象地址
3.維護者資訊
4.命令部分

mkdir -p /docker/httpd
cd /docker/httpd

vim  dockerfile                         //這裡檔名必須為dockerfile
#This is http service //註釋部分,類似於檔案說明 FROM docker.io/centos:latest //以哪個image作為基礎 MAINTAINER user <[email protected]163.com> //維護者的資訊 RUN yum -y install apr apr-utils //在建立映象中執行以下命令 RUN yum -y install httpd

根據dockerfile建立新images:

docker build -t=centos:v2 /docker/httpd

-t:新增映象name:tag資訊
後面的/docker/httpd路徑為dockerfile的絕對路徑,也可在/docker/httpd的當前路徑下使用 “.”來代替絕對路徑

說明:dockerfile中的指令被一行一行的執行,每執行完一行命令都要建立一個新的容器。當所有命令都執行完,會返回一個映象ID,中間步驟所產生的所有容器ID都會被清除。一個映象不能超過127層

Complete

小tips:
基於已有image進行建立的時候,可能會因為下載國外網站的映象很慢。如果你在本地有映象,可以通過以下命令本地匯入映象,這裡再貼出匯出映象的命令

docker load -input 映象名稱:標籤                          //本地匯入映象
docker save -output  建立歸檔檔名 映象名稱:標籤           //本地匯出映象

相關推薦

基於有的image建立docker images

首先我們得知道怎麼下載映象: docker search 映象名稱                                         //電腦聯網情況下在docker HUB裡面查詢映象 docker pull 倉庫伺服器/倉庫/映象

基於映象的容器建立映象

啟動Docker [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND

oracle和mysql資料庫建立表之前判斷表是否存在如果存在則刪除以及在這兩個庫中建立

/* Navicat Oracle Data Transfer */ ------------------------------ -- Table structure for `article` -- ---------------------------- --判斷表是否存在,如果存在則刪除 declar

用別人的錢和時間進行學習(可以學到很多東西創業成功多了把握而且緩解財務壓力)善於利用資源別著急只要不斷工作、不斷學習然後保持耐心即可

strong 以及 禮品 body tor 是我 雜誌 研究 財務 我還是個小孩的時候,曾經在堂兄的禮品店幹過。   那些漫長炎熱的夏天實在是太無聊了,所以我甚至都沒開口讓他給我工錢。   不過有一天我突然想到了一個好點子。我可以跑到山裏面,到當地果園摘一些無花果,

為什麽Kafka我們最終卻選擇了Apache Pulsar?

客戶 場景 總線 綁定 消費 不能 使用 其他應用 影響 在一家商業公司,采用任何一項新技術,包括開源技術,都有一定的風險,即使這項技術具有顯著的技術優勢。Apache Pulsar 的引入經過了我們的深思熟慮和充分調研。我想跟大家分享一下我們使用和調研 Apache Pu

Kafka為何選擇了Apache Pulsar?

在一家商業公司,採用任何一項新技術,包括開源技術,都有一定的風險,即使這項技術具有顯著的技術優勢。Apache Pulsar 的引入經過了我們的深思熟慮和充分調研。我想跟大家分享一下我們使用和調研 Apache Pulsar 的經驗。因為我們相信肯定有其他和我們類似的公司也可以從 Pulsa

基於SpringBoot專案jar構建Docker映象

需要兩點準備: 1.SpringBoot的jar包 2.DockerFile檔案 FROM java:8 VOLUME /tmp ADD demo-0.0.1-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENTRY

為什麼Kafka我們最終卻選擇了Apache Pulsar?

在一家商業公司,採用任何一項新技術,包括開源技術,都有一定的風險,即使這項技術具有顯著的技術優勢

git fabric 1.0.0 官方原始碼進行編譯生成 docker images

系統環境:centos 7 64位 docker docker-compose 不要使用 centos yum 倉庫帶的 docker,版本過低。 安裝docker 官方的repo 裡面的版本 $ sudo tee /etc/yum.repos.d/docker.rep

基於專案整合webpack配合babel支援es6轉碼壓縮

需求: 在已有的專案基礎上整合webpack,babel支援es6轉碼壓縮 想要單獨使用請參考 1.單獨使用webpack壓縮程式碼 [https://seg

NSIS檢測並解除安裝版本靜默解除安裝隱藏MessageBox

接觸到NSIS製作安裝包,檢測並解除安裝已有版本,專案要把已有專案刪除,百度了方法,遇到了不少坑,慢慢的,現在的版本應該可以使用了。希望可以幫到一些人。 廢物不多說,先看下原本百度的程式碼: Var UNINSTALL_PROG Var OLD_VER Var OLD_PATH Function .

QTemporaryDir及QTemporaryFile建立臨時目錄及文件夾(創建一個隨機名稱的目錄或文件兩者均能保證不會覆蓋文件)

接口 函數 dir 說明 文件的 removes pen cto path 版權聲明:若無來源註明,Techie亮博客文章均為原創。 轉載請以鏈接形式標明本文標題和地址:本文標題:QTemporaryDir及QTemporaryFile建立臨時目錄及文件夾 本文地址

二叉樹 知前序中序兩個序列建立二叉樹(中序和後序也

本文主要講二叉樹的建樹,具體的說就是,題目給出你二叉樹的前序和中序,你來建樹,還有一個題目是給出中序和後序來建樹 第一題:A binary tree is a finite set of vertices that is either empty or consists

倉庫一鍵遷移到github上(無需重新建立倉庫不會丟失提交記錄)

就在今天,微軟宣佈了Github私有倉庫免費的訊息。在這裡給微軟點個贊。 因為之前私有倉庫是收費的原因,我這裡就把一些私有專案放到了碼雲上,碼雲的私有倉庫是免費的。 現在既然Github的私有倉庫也免費了,就想著還是把專案放到Github吧。 但是我總不能重新建立一個新的倉庫吧,這樣一來

C#中的擴充套件方法(向類新增方法但無需建立新的派生型別)

擴充套件方法使你能夠向現有型別“新增”方法,而無需建立新的派生型別、重新編譯或以其他方式修改原始型別。 擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。 以上是msdn官網對擴充套件方法的描述,現在我通過一個情景例子來對此進行闡釋。假設一個控制檯程式class Progr

Docker基於有的鏡像制新的鏡像

用戶名 密碼 commit 制作 1.根據運行的容器制作鏡像#查看所有的容器docker ps#暫停當前容器docker pause COTNAINER-ID#將容器運行當前狀態提交docker commit COTNAINER-ID#根據COMMIT-ID打包容器Tag docker tag

雲計算之路-阿裏雲上:彈性伸縮無服務器可彈服務器無兵可援

cit spec -h ebs request sca 天上 chan binding 活動起因: A scheduled task executes scaling rule "eBsJ2veNkwJkcGinmICVH1Q", changing the Total

[EF] - "打開的與此 Command 相關聯的 DataReader必須首先將它關閉" 之解決

multiple multipl images 默認 htm ade and sql data 錯誤 解決 在 ConnectionString 中添加 MultipleActiveResultSets=true(適用於SQL 2005以後的版本)。MultipleAct

Docker擁抱k8s早預兆Docker現何去何從?

容器 docker kubernetes 導讀本文由Rancher Labs CEO及聯合創始人梁勝博士寫於前往參加DockerCon之前。從各家容器編排方案均很不成熟的初期,到三足鼎立的編排之戰,到如今k8s似已全面勝利,作為整個發展歷程的參與者與見證者,回顧這幾年容器領域發展和Rancher的

Oracle安裝時oracle用戶將用戶添加到oinstall和dba用戶組

添加到oinstall和dba用戶組usermod -g oinstall -G dba -d /home/Oracle Oracle-g為指定用戶的主要組為oinstall組-G為指定用戶的次要組為dba組-d為指定用戶的主目錄語句詳細定義為將Oracle用戶的主要組指定為oinstall次要組指定為dba