かべぎわブログ

ブログです

Docker outside of Docker

Docker outside of Dockerです。

ローカルで

docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock docker ash

コンテナ内で

echo $(hostname) > ./hostname.txt
# hostname = 9efa8fda8add

以下のようなDockerfileをつくる

FROM centos
ADD hostname.txt /tmp/work/

ビルド

docker build .

ローカルで確認してもコンテナ内でつくったイメージが確認できますね

docker images

REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
<none>                                    <none>              263a8bda9bb0        5 minutes ago       237MB

コンテナのホスト名のファイルいりでビルドされていますね。

docker run 263a8bda9bb0 cat /tmp/work/hostname.txt
9efa8fda8add

docker buildするときの環境依存をなくしていきたい。
ローカルはdocker-composeとか結構ありがち。