这是实现这一目标的一些方法。
这个想法是保存您要使用的图像,然后在容器启动过程中导入这些图像。
例如,您可以使用一个文件夹images
来存储您的图像。
而且您必须使用自定义的入口点脚本来导入图像。
所以Dockerfile
将是:
FROM docker:19.03-dind
RUN apk add --update --no-cache bash tini
COPY ./images /images
COPY ./entrypoint.sh /entrypoint.sh
ENTRYPOINT ["tini", "--", "/entrypoint.sh"]
(tini
需要在后台加载图像)
和entrypoint.sh
脚本:
#!/bin/bash
# Turn on bash's job control
set -m
# Start docker service in background
/usr/local/bin/dockerd-entrypoint.sh &
# Wait that the docker service is up
while ! docker info; do
echo "Waiting docker..."
sleep 3
done
# Import pre-installed images
for file in /images/*.tar; do
docker load <$file
done
# Bring docker service back to foreground
fg %1
仅供参考,有关如何保存图像的示例:
docker pull instrumentisto/nmap
docker save instrumentisto/nmap >images/nmap.tar