ルート権限なしでログインするためのDockerソリューション

ルート権限なしでログインするためのDockerソリューション

docker コマンドを初めて使用する場合、権限の問題を確認するメッセージが表示されます。

unix:///var/run/docker.sock の Docker デーモン ソケットに接続しようとしたときに権限が拒否されました: http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json?all=1 を取得: unix /var/run/docker.sock をダイヤル: 接続: 権限が拒否されました

解決:

1. sudo を使用して root 権限を取得します。

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

sudo groupadd docker #docker ユーザーグループを追加 sudo gpasswd -a $USER docker #ログインしているユーザーを docker ユーザーグループに追加 newgrp docker #ユーザーグループを更新 docker ps #sudo で docker コマンドが正常に使用できるかどうかをテスト

補足:dockerでmysqlをデプロイする際にrootユーザーがログインできない問題と解決方法

今日、mysql:5.7 docker イメージを使用しているときに、コンテナを起動した後に root ユーザーを使用してログインできないことがわかりました。手順は次のとおりです。

1. mysql5.7イメージを取得する

$ docker pull mysql:5.7

2. 橋を作る

$docker ネットワーク作成 -d ブリッジ blog_network

3. mysqlコンテナを実行する

 docker コンテナを実行します -it --rm --name mysql --network blog_network -v $PWD/data/myscript/:/docker-entrypoint-initdb.d/ --env MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

4. コンテナに入る

$ docker exec -it mysql bash
#mysql -u ルート -p

手順 3 で設定したパスワード 123456 は次の結果を返します。

パスワードを入力してください: 
エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード使用: YES)

5. 解決策は次のとおりです

ステップ 2: コンテナ コマンドを実行し、次のように変更します。

 $ docker コンテナを実行 -it --detach --name mysql --network blog_network -p 3306:3306 -v $PWD/data/myscript/:/docker-entrypoint-initdb.d/ --env MYSQL_RANDOM_ROOT_PASSWORD=yes mysql:5.7
$ docker container logs mysql| grep '生成されたルートパスワード: ' | awk -F': ' '{print $2}'

ルート ユーザーの実際のパスワードである文字列が返されます。このパスワードでログインし、ルート ユーザーのパスワードを変更します。

オリ0オーMoo1Ieg1CeiYieSohleeVi1oh
$mysql -u ルート -p

上記のパスワードを使用してmysqlにログインした後、パスワードを変更する必要があります。

mysql>mysql.user を更新し、authentication_string=password('newpassword') を設定します。user='root' です。
mysql>権限をフラッシュします。
mysql>終了

図に示すように:

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法
  • Dockerでmysqlのルートパスワードを変更する方法
  • Docker を使用してコンテナ内のルート パスワードを変更する方法
  • Dockerコンテナでルート権限を取得する方法
  • docker cp ファイルをコピーしてコンテナに入る
  • Dockerはコンテナに入るためにルートを使用する
  • Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策
  • Dockerに証明書を追加する方法

<<:  CSS3 のメディアクエリと rem レイアウトを組み合わせてモバイル画面に適応

>>:  Xtrabackup を使用した MySQL バックアップ プロセスの詳細な説明

推薦する

JavaScriptでよく使われる配列重複排除実戦ソースコード

アレイの重複排除は、通常、就職面接中に遭遇し、アレイの重複排除方法のコードを手動で記述することが求め...

Vue はモバイル端末にマルチグリッド入力ボックスを実装

最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手で...

VueはOSSを使用して画像や添付ファイルをアップロードします

OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...

JavaScript の例におけるループの使用法の詳細な説明

退屈だったので、ループに関する簡単な演習をいくつかまとめてみました。JS を学び始めたばかりの方に役...

jsはテーブルドラッグオプションを実装します

この記事の例では、テーブルドラッグオプションを実装するためのjsの具体的なコードを参考までに共有して...

Ajax リクエストにおけるクロスドメイン問題の原因と解決策

目次1. クロスドメインはどのように形成されるのでしょうか? 2. クロスドメインの根本的な原因3....

HTMLはテキスト行のインターセプトの実装原理とコードを超えています

複数行を超えるテキストをインターセプトするための HTML コードは次のとおりです。 HTML:コー...

Docker を使用してフロントエンド アプリケーションをデプロイする方法

Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...

Vue で HTML 5 ドラッグ アンド ドロップ API を使用する方法

ドラッグ アンド ドロップ API は、ドラッグ可能な要素を HTML に追加し、ドラッグ可能な豊富...

Eclipse と IDEA 用に Tomcat サーバーを構成する方法

tomcat サーバーの構成誰もが Web について学習するときに、自分のツール用に Tomcat ...

Nginx 静的サービス設定の詳細な説明 (ルートとエイリアスの指示)

静的ファイルNginx は高いパフォーマンスで知られており、フロントエンドのリバース プロキシ サー...

Linux ディスク クォータ管理のグラフィカルな例

ディスク クォータは、コンピューター内の指定されたディスクのストレージ制限です。つまり、管理者はユー...

Zabbixを使用してMySQLを監視する方法

Zabbix 導入ドキュメントzabbix導入後zabbixエージェントの操作1. MySQLを監視...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

Mysql の varchar 型に関する注意点

varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...