ピックアップ

「Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?」のエラーになった件

Dockerの立ち上げに関しては、

  1. Dockerfileというファイルを作成する
  2. ビルドしてDockerイメージを作成する
  3. Dockerイメージからコンテナを作成する
  4. コンテナに接続してログインする

という手順を行って、

上記をやってみたあとに、

  • Dockerのイメージの確認
  • Dockerのコンテナの確認
  • Dockerのコンテナの停止と削除

などを行っていました。

この辺りは、

コマンドで実行したことがあるので、

その辺りは、

こちらを参考にしてください。

今回は、

dockerコンテナで、

いつものように立ち上げて処理していたが、

ユーザーをrootで動くようにしていたので、

ファイルアクセス権の問題で、

Permisison

の関連エラーが出ていた。

今回の件を、

自分の備忘録として、

忘れないうちにメモを残しておきます。

今回の内容の経緯

コンテナを立ち上げる際に、

FROM php:8.1-fpm

のように、

ベースとして、

Ubuntuが動く環境でやっており、

デフォルトだと、

rootになってしまっていた。

ファイル権限周りで色々と調整していたが、

調整方法としては、

  • コンテナ内でファイル権限操作により対応する
  • 立ち上げるコンテナ自体の実行ユーザーを変更する

が考えられるが、

後者の

立ち上げるコンテナ自体の実行ユーザーを変更する

という対応にした。

対応メモ

対応方法としては、

Dockerfile

の中に

RUN groupmod -g 33 www-data \
 && usermod -u 33 -g 33 www-data

USER www-data

を入れて対応するのみ。

33

については、

www-data ユーザー/グループのデフォルトの UID/GID

なので、

それを使って設定してる。

この調整したら、

  • Docker イメージの再ビルド
  • Docker コンテナの再起動

の2つでオッケーのはず。

ちなみに、

ユーザー指定で、

コンテナ動かすとか、

入って対応するとかの時は、

docker run -u www-data myapp

のように

「-u」(user)

オプションを使うと良い。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事