1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

docker DooDを試す

Posted at

DooDについて

Docker outside of Docker の略、Dockerコンテナ内からDockerを使う
コンテナ内からdockerを使うプラクティスは、DinD, DooDと2通りあるらしいが、今回はDooDを試す。

docker install

以下を参照してインストールする。
DooDする場合は、Dockerfileに以下を記載するとよい。

Docker Engine インストール(Ubuntu 向け)

sudo apt-get update -y
sudo apt-get install ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

DooD のために sock mount する

DooD のためにdocker run時に以下のオプションを付与してdockerを起動させる
-v /var/run/docker.sock:/var/run/docker.sockの部分がポイント。(container_nameは任意のDockerコンテナ名)

docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock container_name /bin/bash

起動させた後、以下のコマンドによりDooDできているかどうか確かめる。
ホスト側と同じ結果が出力されればOK

docker exec -it container_name bash -c "docker images"

以下は実際の運用では避けた方がいい

dockerインストール済のホスト環境の/usr/binをDooD時用のdocker起動時にmountする事でdockerコマンド自体は確認可能と思うが、
そもそも/usr/binは他バイナリも含まれているので、実環境での運用は避けた方がよい。

docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin:/usr/bin container_name /bin/bash

参考

コンテナからコンテナを操作する
Docker in Docker、Docker outside of Docker(ソケットファイルの共有)を試す
Docker Engine インストール(Ubuntu 向け)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?