Contents
podmanを使ってDocker in Docker(Docker in podman?)を試したのでメモしておきます。
podman
環境
項目 | バージョン |
---|---|
CentOS | 8.0 |
podman | 1.0.5 |
環境準備
必要なパッケージのインストール
podmanをインストールします。
1 2 |
[root@podman01 ~]# dnf -y install podman |
dind
podmanでdindを試したのは以下の3通りです。
dindイメージを使う
これは既に用意されてるdindイメージを使う場合です。
コンテナを起動して動作確認をします。
1 2 3 4 5 6 7 8 9 |
[root@podman01 ~]# podman run -itd --privileged --name dind docker:dind [root@podman01 ~]# podman exec -it dind sh / # docker run -itd centos:7 / # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fc8b06714887 centos:7 "/bin/bash" 5 seconds ago Up 3 seconds gifted_galois / # docker exec fc8b06714887 ls /root anaconda-ks.cfg |
dind環境ができました。
CentOS7イメージを使う
CentOSイメージを使う場合です。
以下のDockerfileを作ってdind用のイメージを作成します。
1 2 3 4 |
[root@podman01 ~]# mkdir centos [root@podman01 ~]# cd centos/ [root@podman01 centos]# vi Dockerfile |
1 2 3 4 5 6 7 8 9 |
FROM centos:7 RUN yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo RUN yum -y install iptables docker-ce CMD ["/sbin/init"] |
1 2 |
[root@podman01 centos]# podman build -t centos7-dind -f Dockerfile . |
コンテナを起動して動作確認をします。
1 2 3 4 5 6 7 8 9 10 11 |
[root@podman01 centos]# mkdir /var/lib/docker [root@podman01 centos]# podman run -itd --privileged -v /var/lib/docker:/var/lib/docker:rw -v /sys/fs/cgroup:/sys/fs/cgroup:rw --name centos7-dind centos7-dind:latest [root@podman01 centos]# podman exec -it centos7-dind bash [root@4ac5ca96c110 /]# systemctl start docker [root@4ac5ca96c110 /]# docker run -itd centos:7 [root@4ac5ca96c110 /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9bae6edc2c42 centos:7 "/bin/bash" 6 seconds ago Up 4 seconds bold_mestorf [root@4ac5ca96c110 /]# docker exec -it 9bae6edc2c42 ls /root anaconda-ks.cfg |
CentOSイメージのdind環境が出来ました。
Ubuntu18.04イメージを使う
Ubuntuイメージを使う場合です。
以下のDockerfileを作ってdind用のイメージを作成します。
1 2 3 4 |
[root@podman01 ~]# mkdir ubuntu [root@podman01 ~]# cd ubuntu/ [root@podman01 ubuntu]# vi Dockerfile |
1 2 3 4 5 6 7 |
FROM ubuntu:18.04 RUN apt update && \ apt install -y systemd docker.io CMD ["/sbin/init"] |
1 2 |
[root@podman01 ubuntu]# podman build -t ubuntu18.04-dind -f Dockerfile . |
コンテナを起動して動作確認をします。
1 2 3 4 5 6 7 8 9 10 |
[root@podman01 ubuntu]# podman run -itd --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:rw --name ubuntu18.04-dind ubuntu18.04-dind:latest [root@podman01 ubuntu]# podman exec -it ubuntu18.04-dind bash root@3ecaf3edb166:/# systemctl start docker root@3ecaf3edb166:/# docker run -itd centos:7 root@3ecaf3edb166:/# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b27989f382af centos:7 "/bin/bash" 8 seconds ago Up 2 seconds kind_kare root@3ecaf3edb166:/# docker exec b27989f382af ls /root anaconda-ks.cfg |
おわり 🙂