演示Docker创建自有镜像的方式,以及如何查看镜像内容。

创建Dockerfile

FROM busybox:latest
COPY --chmod=755 <<"EOF" /start.sh
echo "Starting..."
for i in $(seq 1 5); do
  echo "$i"
  sleep 1
done
echo "Exiting..."
exit 1
EOF
ENTRYPOINT /start.sh

创建镜像

➜  docker build -t startstop .
[+] Building 9.9s (7/7) FINISHED                                                                                                                             docker:default
 => [internal] load build definition from Dockerfile                                                                                                                   0.0s
 => => transferring dockerfile: 215B                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/busybox:latest                                                                                                      8.0s
 => [internal] load .dockerignore                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                        0.0s
 => [internal] preparing inline document                                                                                                                               0.0s
 => [1/2] FROM docker.io/library/busybox:latest@sha256:498a000f370d8c37927118ed80afe8adc38d1edcbfc071627d17b25c88efcab0                                                1.7s
 => => resolve docker.io/library/busybox:latest@sha256:498a000f370d8c37927118ed80afe8adc38d1edcbfc071627d17b25c88efcab0                                                0.0s
 => => sha256:498a000f370d8c37927118ed80afe8adc38d1edcbfc071627d17b25c88efcab0 10.20kB / 10.20kB                                                                       0.0s
 => => sha256:42279ede3600b4e63af075a5e27d68232ff837d9cdcaba74feffc7ab0dfec0dc 610B / 610B                                                                             0.0s
 => => sha256:31311c5853a22c04d692f6581b4faa25771d915c1ba056c74e5ec82606eefdfa 459B / 459B                                                                             0.0s
 => => sha256:9c0abc9c5bd3a7854141800ba1f4a227baa88b11b49d8207eadc483c3f2496de 2.16MB / 2.16MB                                                                         1.6s
 => => extracting sha256:9c0abc9c5bd3a7854141800ba1f4a227baa88b11b49d8207eadc483c3f2496de                                                                              0.0s
 => [2/2] COPY --chmod=755 <<EOF /start.sh                                                                                                                             0.0s
 => exporting to image                                                                                                                                                 0.0s
 => => exporting layers                                                                                                                                                0.0s
 => => writing image sha256:56b8a880daa5e3b8a5d47d440b37ae234020a755f1c3c6f16939aca5a0490dc3                                                                           0.0s
 => => naming to docker.io/library/startstop                                                                                                                           0.0s

 1 warning found (use docker --debug to expand):
 - JSONArgsRecommended: JSON arguments recommended for ENTRYPOINT to prevent unintended behavior related to OS signals (line 11)
➜  docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
startstop     latest    56b8a880daa5   10 seconds ago   4.27MB
➜  docker run startstop:latest
Starting...
1
2
3
4
5
Exiting...

查看镜像

  • 查看容器存储层的内容(容器与镜像变更的文件):
docker diff 容器名 
  • 保存容器为镜像(不推荐的方法):
docker commit \ 
--message "修改了默认网页" \ 
webserver \ 
nginx:v2 
  • 查看镜像的提交历史记录:
docker history 镜像名