Dockerでエラー「dial unix /var/run/docker.sock: connect: permission denied.」

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

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

という手順を行って、

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

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

などを行っていました。

この辺りは、

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

その辺りは、

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

今回は、

docker-compose

を使っているのですが、

特定のサーバーで環境を構築するために、

コマンドを実行したところエラーになりました。

その時の対応を、

自分の備忘録として、

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

エラー内容

docker-composeを使ってビルドをしていましたが、

エラーになっているので、

そもそも、

Docker自体が動いているのかを確認してみました。

実行コマンド

docker ps

エラー内容

Got permission denied 
while trying to connect to the Docker daemon socket 
at unix:///var/run/docker.sock: 
Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": 
dial unix /var/run/docker.sock: connect: permission denied

ということで、

Docker自体が正しく挙動していませんでした。

最終的な対応方法

いくか設定を変更したりしていましたが、

結論として、

権限を調整して、Dockerを再起動

を行うことで解決しました。

権限を調整

sudo usermod -aG docker $USER

こちらで、

現在のユーザーをdockerグループに追加しています。

Dockerの再起動

sudo systemctl restart docker

こちらで、

先ほどの設定を反映するために、

Dockerのデーモンを再起動します。

もし、

SSHなどで接続している場合は、

現在のシェルに反映するためには、

  • 現在のシェルに反映させるためにコマンドで対応
  • 一度、ログアウトして、再度、SSHで接続

のどちらかが必要です。

直接、

現在のシェルに反映させるには、

以下のコマンドが必要です。

現在のシェルに反映させるコマンド

newgrp docker

ここまでの対応を行うことで、

エラー自体が解決できました。

実際に、

docker ps

のコマンドで確認したところ、

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

このように、

うまくDocker自体が挙動しましたので、

無事に解決できました。

スキルを使って、就職/転職/副業する時のサイト

プログラミングのスキルなどを、自分なりに高めた上で、

自分のスキルをアピールして就職や転職を行い、年収をあげるか、

副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。

まずはできる範囲で取り組むことで、

少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。

おすすめ書籍

広告

おすすめ記事