1. 程式人生 > >docker映象製作

docker映象製作

建立一個安裝好apache工具的容器映象

docker run -it docker.io/centos:latest /bin/bash

在container中安裝apache軟體包

yum install httpd

檢視映象(當前只有一個)

docker images

建立一個安裝好apache工具的容器映象

docker commit container_id  建立後的映象名稱:標籤
docker commit 456ac4e1d8ef docker.io/centos:httpd

現在檢視就會發現多了一個image

docker images
docker run -it docker.io/centos:httpd /bin/bash

然後我們在container中檢視是否已經安裝了apache

rpm -qa httpd

ok

方法二

  • 通過docker build建立一個基於centos的httpd web伺服器映象
  • 使用docker build建立映象時,需要使用Dockerfile檔案自動化製作image映象

建立工作目錄

mkdir /docker-build
cd /docker-build
touch Dockerfile

編輯Dockerfile

vim Dockerfile

新增一下內容

FROM docker.io/centos:latest
MAINTAINER <[email protected]
> RUN yum -y install httpd ADD start.sh /usr/local/bin/start.sh ADD index.html /var/www/html/index.html

解釋

FROM ---- 基於哪個映象 MAINTAINER ---- 映象建立者 RUN ---- 安裝軟體用 ADD ---- 將檔案拷貝到新生成的映象的檔案系統對應的目錄,所有拷貝到新映象中的檔案和資料夾的許可權為0755,uid和gid為0 cmd ---- container啟動時執行的命令或啟動服務,只能有一條此命令,多條只執行最後一條cmd

建立start.sh指令碼啟動httpd服務和apache預設首頁index.html檔案

echo '/usr/sbin/httpd-DFOREGROUND'>start.sh
chmod a+x start.sh
echo 'docker image build test' > index.html

/usr/sbin/httpd-DFOREGROUND 相當於systemctl start httpd

使用命令來建立新的image

docker build -t docker.io/centos:httpd2 ./

./表示當前目錄, 當前目錄下要包含Dockerfile

映象操作

匯出映象

  • Save Image To TarBall
  • 儲存Image到tar包

語法

docker save -o   匯出的映象名.tar   本地映象名:映象標籤

docker save -o docker.io/centos:httpd2.tar docker.io/centos:httpd2

刪除映象

docker rmi docker.io/centos:httpd2

匯入映象

docker load -i docker.io/centos:httpd2.tar