sub-satoshi
@sub-satoshi

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Docker起動時のエラーに大苦戦...泣きそう...

解決したいこと

Docker起動時のエラーを解決したい

発生している問題・エラー

IMG_1291.jpg

Docker起動のエラーを解決するためには...?

ユーザー一覧を表示した
IMG_1293.jpg

パーミッションを確認した
Docker.appにユーザーが登録されていない?
IMG_1292.jpg

ホームディレクトリはSatoshiです
ユーザー名はDevです
IMG_1290.jpg

Devというユーザー、権限?、
SatoshiというホームディレクトリのPATH?
でDockerを開ければエラーが解決しますか?

最後に

二週間このエラーに苦戦しています...
泣きそうです😢

0

4Answer

1枚目のスクリーンショットではディレクトリを作ろうとして失敗したエラーが出ていますが、その作ろうとしたディレクトリ名がおかしそうです。 /Users/Satoshi/Users/Dev で始まるべき気がしますが、どちらでもないように見えますね。伏せられている部分は覚えのある文字列ですか?(たとえば一度作ったが消したユーザー名であるとか)

1Like

Comments

  1. @sub-satoshi

    Questioner

    返信ありがとうございます!おっしゃる通りです!隠している文字列(ユーザー名)は元々本名でした!本名がターミナルで出るのは凄くダサいなぁって思ったのでDevっていうユーザー名に変えました!
    その後Dockerでエラーが出るようになりました!
  2. またこのダイアログが出たら左側の Reset Docker ボタンを押してみてください。
  3. @sub-satoshi

    Questioner

    Reset Docker to factory defaults押して再度開いても、permission deniedと出ます
    また、mkdir /Users/本名: から mkdir /Users/SatoshiのPATHを変える方法ってわかりますか?
    下のURLに解決策載っていそうなのですが公式のドキュメント?なのでわからないことだらけです...
    https://docs.docker.com/desktop/mac/permission-requirements/
  4. permission denied と出るのは /Users/(古いユーザー名) ディレクトリを作る権限がないからですね。手動で無理に作ることはできますが、作っても後で別の不整合が出る可能性があります。そもそも古いユーザー名を認識しっぱなしなのが問題なので。

    パスを変える方法はちょっと分からないですね。見るドキュメントはそれで合っているものの、ユーザー名を変えた状況まではカバーしていないようです。

    もしユーザー名を変えた後 Mac を再起動していなかったら、一度再起動してから Reset Docker をやり直してみてください。

    他に根本的な解決策としては Docker.app と関連データを削除して再インストールしてみる、またはユーザー名を元に戻す、新しい開発用ユーザーを作って使う、などがあると思います。
  5. ちなみに /Applications/Docker.app 自体には設定データは入っていません。

    1. ~/Library/Application Support/Docker Desktop -> Docker Desktop アプリケーション自体の設定など
    2. ~/Library/Containers/com.docker.docker/Data -> Docker で使ったイメージやコンテナのデータなど
    3. ~/.docker -> コマンドラインツール `docker` の設定など

    1. を削除(リネームして退避した方が安全)すれば十分だと思います。
  6. もう一つついでに、 Mac のスクリーンショットは Cmd+Shift+3 (全画面)か Cmd+Shift+4 (範囲選択)で撮れます。
  7. @sub-satoshi

    Questioner

    古いユーザー名に戻してからまたSatoshiに変えたところ、無事にpermission deniedエラーにならずにDockerを立ち上げることができました!!
    多分、古いユーザー情報が残ってた?のかな?
    色々と教えてくださり、ありがとうございました!
    後、なぜスクリーンショット使わなかったのは自分でも謎ですねw
    多分macのスクショ自体あまり使わないのでスマホで撮ってしまったのだと思われます。

Devっていうユーザー名に変えました

ユーザー名を変更した際に何か変更しきれていない情報があるのかもしれません。
新しい(管理者?)ユーザーを作って、そのユーザーでdocker desktopをインストールするとどうなりますか?

1Like

Comments

  1. @sub-satoshi

    Questioner

    2枚目の画像に書いてあるhogehogeというユーザーアカウントに切り替えて、Dockerを上書きでインストールしなおして、アプリを立ち上げると管理者の名前とパスワードが聞かれます。
    管理者の名前をhogehogeにしてパスワードを入力すると弾かれる(パスワードを間違えてる可能性もあるかも)のですが、
    管理者の名前をDevにしてパスワードを入力するとpermission errorにならずにDockerを立ち上げることができました。
    ユーザーアカウントをSatoshiに切り替えて、管理者の名前をDevやSatoshiにしてパスワードを入力してもpermission errorが出て起動できません...
  2. ということは、そのSatoshi?Dev?と変更したアカウントの何らかの情報(OS管理下なのかホームディレクトリの.profileなどの設定ファイル)に変更前のユーザーの情報が残っていてdocker desktopがそれを参照してしまっているのだと思います。

    Sathoshiと変更したアカウント情報(名前やホームディレクトリなど変更したものはすべて)元に戻して、更に/Users/Satoshiも名前を変更(/usrs/Satoshiが存在しないように)してから、

    Satoshiというユーザーを新たに作成して利用すれば解決するのではないでしょうか。
  3. @sub-satoshi

    Questioner

    解決できました!!
    Devというユーザー名のホームディレクトリとフルネームを古いユーザー名の名前に戻してからSatoshiという名前に変更しなおしたら、permission deniedエラーが出ずに起動することができました!
    多分、変更前のユーザー情報が残ってた可能性が高い?ですかね
  4. @sub-satoshi

    Questioner

    色々と教えてくださり、ありがとうございました!!

@dev-satoshi @HalHarada

macもfreeBSD+Machなので /etc/passwd をviで開き、

macOS のユーザーアカウントは通常 Open Directory で管理されており、 /etc/passwd ファイルは存在するだけで参照されません。編集しても何も起きないと思います。

% head -n10 /etc/passwd
##
# User Database
#
# Note that this file is consulted directly only when the system is running
# in single-user mode.  At other times this information is provided by
# Open Directory.
#
# See the opendirectoryd(8) man page for additional information about
# Open Directory.
##

どうしてもコマンドラインからユーザーを作成するには dscl を使いますが、大抵は GUI でシステム設定のユーザーとグループを操作すれば事足りるかと。

1Like

Comments

  1. @sub-satoshi

    Questioner

    そーですね、自分の場合下手に設定ファイルとかでPATHなど設定を変えてしまって苦労したことがあったので、設定関係はできるだけGUI操作しようかなと思います!

Desktopのインストール時、一般ユーザーで実行している?だからmkdirができない!

Docker Engineではダメでしょうか?

linuc?,M1MAC? Desktopはwindows,mac,linuxで動作しますが、linux(ubuntu)ならEngineが安定しています。

0Like

Comments

  1. @sub-satoshi

    Questioner

    返信ありがとうございます!
    M1MACです
    確かM1MAC以降の場合、VirtualBoxtとかの仮想マシンが使えなかった気がするので使ってないのと、docker desktopがあるのでわざわざ仮装環境にLinux入れる手間と重くする必要はないのかなと思いました。ただ安定して動かすとなるとEngineには叶わないですよね。
    現在は一応Docker公式にお問い合わせしてみました!
    多分権限周りが間違っていると思うんですけどLinuxとかシステム管理コマンドが得意ではないので全然わからないですね。
    一応このURLに書いてありそうなのですが内容が難しくてかなり手こずってます...
    https://docs.docker.com/desktop/mac/permission-requirements/
  2. usaiさんの掲載を参照のこと
    macは/etc/passwordを用いていないとのこと(SELinux?のよう?)

    macもfreeBSD+Machなので /etc/passwd をviで開き、rootの行をコピーして、Dev に変更すると rootのクーロンができます。Devの行はコメントアウトで!
    Devでdocker desktopをインストールしては?


  3. @sub-satoshi

    Questioner

    sudo su -でroot権限付与して
    vipwで/etc/passwordを開いて
    vimでroot:*:0:0::0:0:System Administrator:/var/root:/bin/shの行?をコピーして、
    Devに変更するであってますか?
    また合っているのでしたらどこをDevに変えたら良いですか?
  4. usaiさんの を参照のこと
    macは/etc/passwordを用いていないとのこと


    1から4桁目のrootをDevに(:が多い気がするけど?)

    passwd Devでパスワードを変更してもrootのパスワードは変わりません。

    id root
    id Dev で確認のこと
    uid=0,gid=0がroot権限です。
  5. @sub-satoshi

    Questioner

    Docker治りました!!
    多分、古いユーザー情報が残ってた?のかな?
    色々と教えてくださり、ありがとうございました!

Your answer might help someone💌