創建一個安裝好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.io/centos:httpd鏡像生成一臺容器實例
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 <sss@localhost>
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