やりたいこと
Dockerコンテナでdockerコマンドを利用したい(docker in docker)
昔からよくやっているが古い記事が多いので2022年の情報としてメモを残す
1.公式イメージを使う
公式イメージ をdocker pullして使う。
公式ドキュメントがわかりやすいのでdockerコマンドだけ使いたいならこちらがよい。
2.binファイルのみ配備する
binファイルをダウンロード 然るべき場所に配備する。
大抵の場合jenkinsやその他タスクランナーコンテナでdockerコマンドを使いたいだけだろうから以下のようにdockerクライアントだけバイナリインストールする。
ENV DOCKER_CLIENT_VERSION=20.10.16
ENV DOCKER_API_VERSION=1.41
RUN wget -O - https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_CLIENT_VERSION}.tgz \
| tar -xzC /usr/local/bin --strip=1 docker/docker
以下のような古いバイナリインストールはやめましょう🙅
2016年くらいから残っている古いbinファイルなのでやめたほうがいいと思われる。
ENV DOCKER_CLIENT_VERSION=1.12.3
ENV DOCKER_API_VERSION=1.24
RUN wget -O - https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_CLIENT_VERSION}.tgz \
| tar -xzC /usr/local/bin --strip=1 docker/docker