
前提・実現したいこと
他コンテナを操作するコンテナを作るため、ホストマシン内のDockerのソケットファイルをコンテナ内にマウントしたいと考えています。
発生している問題・エラーメッセージ
docker-composeを使用し、下記のDockerfile、docker-compose.ymlの内容でビルド、起動を行いましたが、コンテナ内に当該ファイルが見つかりませんでした。
$ docker-compose up Creating network "test_default" with the default driver Building app_1 Step 1/5 : FROM centos:latest ---> 9f38484d220f Step 2/5 : USER root ---> Using cache ---> b99f8d0670b4 Step 3/5 : RUN groupadd -o -g <dockerグループのID> docker ---> Using cache ---> 1a1d98144db6 Step 4/5 : RUN usermod -g docker root ---> Using cache ---> 2dfc3f23984a Step 5/5 : RUN yum install -y docker docker-compose ---> Running in 8e5af836c2e4 #... #インストール処理 #... Complete! Removing intermediate container 8e5af836c2e4 ---> 5922fdb3f057 Successfully built 5922fdb3f057 Successfully tagged test_app_1:latest WARNING: Image for service app_1 was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. Creating test_app_1_1 ... Creating test_app_1_1 ... done Attaching to test_app_1_1 #別ターミナルから $ docker exec -it test_app_1_1 /bin/bash [root@a8bbf96ca202 /]# ls /var/run console dmeventd-client lock lvmetad.pid setrans user cryptsetup dmeventd-server log mount systemd utmp dbus faillock lvm sepermit udev
なお、初回ビルドの出力であり、キャッシュ等はありません
該当のソースコード
Dockerfile
1FROM centos:latest 2USER root 3RUN groupadd -o -g <ホストのdockerグループのID> docker 4RUN usermod -g docker root 5RUN yum install -y docker docker-compose
dockercompose
1version: "3" 2services: 3 app_1: 4 build: . 5 volumes: 6 - "/var/run/docker.sock:/var/run/docker.sock" 7 privileged: true 8 command: /sbin/init
試したこと
上記の通り、コンテナ内のrootユーザーをホストのDockerグループと同じIDのグループに追加しましたが、ファイルは確認できませんでした。
また、ソケットファイルの上位ディレクトリである/var/runをマウントすることはできましたが、危険そうですし、現にホストマシンの音量が0になったりGUIが終了するなどの不具合が起きているため、ソケットファイルだけをコンテナと共有する手段を知りたいです。




回答1件
あなたの回答
tips
プレビュー