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

推薦する

Vueコンポーネント化の基本的な使用方法の詳細

目次1. コンポーネント化とは何ですか? 2. 基本的な使い方序文:場合によっては、HTML 構造化...

Centos7 で ZooKeeper3.4 ミドルウェアを構築するための一般的なコマンドの概要

1.ダウンロードして解凍する1. Zookeeperの紹介分散サービス フレームワークとして、Zoo...

検索エンジンのウェブサイトの入り口の無料コレクション

1: Baiduウェブサイトログイン入口ウェブサイト: http://www.baidu.com/s...

Linux デスクトップ用の 4 つのスキャン ツール

ペーパーレスの世界はまだ到来していませんが、書類や写真をスキャンすることで紙をなくす人が増えています...

ページの下部にHTMLフッターを配置する簡単な方法

要件:ページ コンテンツが短く、ブラウザーの高さをサポートできない場合でも、フッターをウィンドウの下...

IDEA を使用して Web プロジェクトを作成し、Tomcat に公開する方法

目次ウェブ開発1. Web開発の概要Tomcatのインストールと設定Tomcatをインストールする2...

ウェブページ(ウェブサイト)のデザインと制作に関する考えや経験の共有

まずは投稿する前に! 「I Want to Study on My Own!」に改めて感謝します。た...

HTML フォーム送信アクションと URL ジャンプアクションの違い

フォームのアクションは URL ジャンプとは異なります。フォームはバックグラウンドにデータを渡すこと...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

PHPのmail()関数を使用してメールを送信する

PHPのメール関数を使用してメールを送信するmail()関数はメールサーバーに接続し、サーバーと対話...

一目でわかる$nextTickの説明

目次1. 機能説明2. 親コンポーネント3. サブコンポーネント NextTick.vue 4なぜ未...

Jenkins の紹介と Docker で Jenkins をデプロイする方法

1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...

Vue のミックスインの使用方法の詳細な説明

目次序文1. Mixin とは何ですか? 2. Mixin はいつ使用すればよいですか? 3. Mi...

MySQL インデックスの一般的な問題の概要

Q1: データベースにはどのようなインデックスがありますか?メリットとデメリットは何ですか? 1. ...

リンク内の href=# はどういう意味ですか?

現在のページへのリンク。 -------------------一般的な使用法は次のとおりです。 &...