Тянуть и толкать образ докера на локальный хост через dind
При сборке изображений в dind (докер в докере) изображение доступно только в dind.
$ docker run -d --name dind --privileged --net=host -v `pwd`:/app -w /app docker:stable-dind
fe66d6e7e5effcf15e439a332a2368fddab810e9bc8ac3445392c8e56b0aa38a
$ docker exec dind ls
Dockerfile
$ docker exec dind docker build -t demo .
Sending build context to Docker daemon 521.7kB
Step 1/24 : FROM alpine
...
$ docker exec dind docker images|grep demo
REPOSITORY TAG IMAGE ID CREATED SIZE
demo latest a9dd4e725029 7 seconds ago 88.3MB
$ docker images |grep demo
<no result>
Я могу отправить изображение на публичный или частный сервер реестра Docker в dind
, потому что они имеют IP или DNS-имя для доступа. Но как я могу отправить новый образ обратно на локальный (the host running dind
)
Во-вторых, если я хочу получить изображение с локального хоста в Dind, как это сделать?
1 ответ
Я могу ответить на мой первый вопрос сейчас.
$ docker exec dind docker save demo |docker load
2f7d711abbe9: Loading layer [==================================================>] 11.44MB/11.44MB
...
Loaded image: demo:latest
$ docker images |grep demo
demo latest a9dd4e725029 8 minutes ago 88.3MB
Тот же размер:-)
Но все еще не уверены, как получить изображение от localhost в Dind, какие-либо идеи?