0

内部に別のコンテナーを使用する必要があるコンテナーがあります (最初のコンテナーにはビルド環境が保持され、一部のプロジェクトはコンテナーを作成することによってビルドされます)。docker-in-docker の回避について読み、次のアドバイスに従いました: https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/次のようにコンテナを実行します。

docker run -v /var/run/docker.sock:/var/run/docker.sock -ti 6519bf891fee bash

これは、コンテナー内で docker hello-world を実行しようとして得たものです。

root@345cf0f934c3:/# docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

さらに、試してみると、次のcat /var/run/docker.sock結果が得られます。

cat: /var/run/docker.sock: No such device or address

ただしls -l /var/run/docker.sock

srw-rw----. 1 root root 0 Nov 29 11:58 /var/run/docker.sock

ホストとコンテナーの両方で root として実行しており、docker ユーザーを両方の sudoers グループに追加しました。コンテナ内の例:

srw-rw----. 1 root root 0 Nov 29 08:58 /var/run/docker.sock
sudo:x:27:build,docker
4

1 に答える 1