文章首發自個人網站:https://www.exception.site/docker/docker-create-image
本文中,您將學習 Docker 如何創建鏡像?Docker 創建鏡像主要有三種:
- 基于已有的鏡像創建;
- 基于 Dockerfile 來創建;
- 基于本地模板來導入;
我們將主要介紹常用的 1,2 兩種。
一、基于已有的鏡像創建
通過如下命令來創建:
docker container commit
支持的子命令如下:
-a, --author
="": 作者信息;-c, --change
=[]: 可以在提交的時候執行 Dockerfile 指令,如 CMD、ENTRYPOINT、ENV、EXPOSE、LABEL、ONBUILD、USER、VOLUME、WORIR 等;-m, --message
="": 提交信息;-p, --pause
=true: 提交時,暫停容器運行。
接下來,基于本地已有的 Ubuntu 鏡像,創建一個新的鏡像:
首先,讓我將它運行起來,并在其中創建一個 test.txt 文件:
命令如下:
docker run -it docker.io/ubuntu:latest /bin/bash
root@a0a0c8cfec3a:/# touch test.txt
root@a0a0c8cfec3a:/# exit
創建完 test.txt 文件后,需要記住標注的容器 ID: a0a0c8cfec3a
, 用它來提交一個新的鏡像(PS: 你也可以通過名稱來提交鏡像,這里只演示通過 ID 的方式)。
執行命令:
docker container commit -m "Added test.txt file" -a "Allen" a0a0c8cfec3a test:0.1
提交成功后,會返回新創建的鏡像 ID 信息,如下圖所示:
再次查看本地鏡像信息,可以看到新創建的 test:0.1
鏡像了:
二、基于 Dockerfile 來創建鏡像
通過 Dockerfile 的方式來創建鏡像,是最常見的一種方式了,也是比較推薦的方式。Dockerfile 是一個文本指令文件,它描述了是如何基于一個父鏡像,來創建一個新鏡像的過程。
下面讓我們來編寫一個簡單的 Dockerfile 文件,它描述了基于 Ubuntu 父鏡像,安裝 Python3 環境的鏡像:
FROM docker.io/ubuntu:latestLABEL version="1.0" maintainer="Allen <weiwosuo@github>"RUN apt-get update && \apt-get install -y python3 && \apt-get clean && \rm -rf /var/lib/apt/lists/*
創建完成后,通過這個 Dockerfile 文件,來構建新的鏡像,執行命令:
docker image build -t python:3 .
注意:命令的最后有個點,如果不加的話,會構建不成功 !
編譯成功后,再次查看本地鏡像信息,就可以看到新構建的 python:3 鏡像了。
三、總結
本文中,我們學習了 Docker 中如何基于本地已有的鏡像,來創建鏡像,以及如何通過 Dockerfile 來創建新的鏡像。祝您學習愉快!