ルート権限なしでログインするための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 バックアップ プロセスの詳細な説明

推薦する

セマンティックHTML構造を理解する方法

HTML と CSS は誰もが知っていると思います。HTML の構造と CSS の表現の分離も知って...

CSS で TikTok テキスト揺れエフェクトを実装する例

日々の開発において、フロントエンドの学生はアニメーションやデザインについてよく議論します。デザイナー...

Linuxにgitをインストールする方法

1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...

MySQL 8.0 のインデックス スキップ スキャン

序文MySQL 8.0.13 では、インデックス スキップ スキャン (インデックス ジャンプ スキ...

アイデアがWebプロジェクトを公開した後、Tomcatサーバーがプロジェクトとそのソリューションを見つけることができません

概要プロジェクトは正常に作成され、正常にデプロイされましたが、以下に示すように、Tomcat サーバ...

Linux での MySQL 5.6.27 インストール チュートリアル

この記事では、LinuxでのMySQL 5.6.27のインストールチュートリアルを参考までに紹介しま...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...

CSS3 で作成された背景グラデーションアニメーション効果

成果を達成する 実装コードhtml <h1 class="text-light&qu...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

JavaScript の for ループと二重 for ループの詳細な説明

forループfor ループは配列の要素をループします。文法: for (初期化変数; 条件式; 繰り...

moment.jsの時間と日付の処理の詳細な説明

月曜日から日曜日の時間形式の変換(Y --- 年 M --- 月 D--- 日) : : : : :...

CentOS 7.x dockerはoverlay2ストレージ方式を使用する

/etc/docker/daemon.json を編集し、以下を追加します。 { "ストレ...

Vue の基本リスナーの詳細な説明

目次Vueのリスナーとは何かリスナーの使い方vue リスナーウォッチVue リスナー - ディープリ...

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...

MySQLで一意のサーバーIDを生成する方法

序文MySQL では、server-id を使用してデータベース インスタンスを一意に識別し、それを...