docker映象製作
阿新 • • 發佈:2018-12-10
建立一個安裝好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