Dockerコンテナ内からホスト側のDockerを操作する
更新日:2020.07.16
作成日:2018.02.24
要は、あるdockerコンテナの中から新たにDockerコンテナを生成したい。
手順
1.dockerコマンドをインストールする
FROM alpine
RUN apk --update --no-cache add docker
CMD docker version
2.ホストのdocker.sock
を-v
オプションで共有する
コンテナ内からホスト側のdockerを呼ぶためには、-v /var/run/docker.sock:/var/run/docker.sock
でホスト側と共有させてあげればよい。注意点は、セキュリティの問題らしい。
参考
Dockercraftの中でも、以下のように述べられている
Mounting /var/run/docker.sock inside the container is necessary to send requests to the Docker remote API.
The default port for a Minecraft server is 25565, if you prefer a different one: -p <port>:25565
やっていいかどうかの議論
Is
-v /var/run/docker.sock:/var/run/docker.sock
a ticking time bomb?Flag to avoid hardcoding -v /var/run/docker.sock:/var/run/docker.sock
Alpine Linux は 3.3 から apk で –no-cache というオプションが使えます。 従来は –update add でインストールした後に
rm -rf /var/cache/apk/*
で不要なゴミファイルを削除していたようですが、いまや--no-cache
で OK です。
Related contents
TECH
2018.05.01
RancherOSで全てのコンテナを削除する方法
TECH
2018.02.18
ConohaVPSでCoreOSやRancherOSを入れる際に困ったこと
TECH
2021.07.11
WSL2のLinuxおよびDockerイメージ格納先を任意のディレクトリに移動する