Mysql の Docker クイック インストール

Alibaba Cloud イメージ アクセラレーションの構成

Docker イメージ ソースは海外にあり、国内のアクセス速度は非常に遅いため、より高速なダウンロード速度を得るには、国内のイメージ ソースを構成する必要があります。

Alibaba Cloud イメージ アクセラレーション設定ページcr.console.aliyun.com/cn-hangzhou ... (ログインが必要) に入り、アカウントのアクセラレーション アドレスを取得します。

デーモン設定ファイルを変更し/etc/docker/daemon.jsonてアクセラレータを使用する

以下は CentOs および Ubuntu システム用の設定コマンドです。ミラー アクセラレーション アドレス (コード内では使用できません) を独自のアドレスに置き換えてください。

 
 
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kwli5l3lxi5a0mx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

他のシステムのイメージ アクセラレーション設定を表示するには、Alibaba Cloud イメージ アクセラレーションのドキュメントを参照してください。

Docker で MySQL をインストールする

「hub.docker.com/」と入力してインストールするイメージを見つけ、適切なバージョンを選択します

たとえば、mysql を検索すると、hub.docker.com/_/mysql ?tab… が表示されます。

コマンドを直接コピーするだけです

 
 
$ docker pull mysql:8

イメージが正常にプルされた後、ローカルにプルされたイメージを表示できます

 
 
$ docker images

通常、クイック インストールでは設定をマウントする必要はありませんが、設定ファイルをマウントする必要がある場合は、現在のバージョンの Mysql の設定ファイルのパスとファイル名を確認する必要があります。

テストコンテナインスタンスを作成して起動する

 
 
$ docker run -p 3306:3306 --name mysqltest -e MYSQL_ROOT_PASSWORD=root -d mysql:8

パラメータの説明:

 
 
- p 3306:3306 : 将容器的 3306 端口映射到主机的 3306 端口
- e MYSQL_ROOT_PASSWORD=root : 设置 mysql 登录密码
- d 后台运行容器,并返回容器 id
mysql:8 我运行的镜像名,也可替换成镜像 id

MySQLコンテナに入る

 
 
$ docker exec -it mysqltest bash

Docker で MySQL ファイルの相対パスを決定する

 
 
# 查找Docker内,MySQL配置文件my.cnf的位置
mysql --help | grep my.cnf

# 若找不到 my.cnf,使用 whereis 命令查找相关配置路径
whereis mysql

ローカル パスを作成し、Docker にデータをマウントする

最初exitに実行して mysql コンテナを終了します

ローカル フォルダーを作成します。パスは自分で計画できます

 
 
$ mkdir -p /root/docker/mysql/conf

テスト コンテナ内の MySQL 構成ファイルをこのパスにコピーします。将来構成を変更する必要がある場合は、マウント パスの構成ファイルで直接変更できます。  

 
 
$ docker cp mysqltest:/etc/mysql/my.cnf /root/docker/mysql/conf

テスト コンテナを削除し、新しい Docker コンテナを作成して開始します

 
 
$ docker run -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-v /root/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-d mysql:8 

パラメータの説明:

 
 
- p 3306:3306 : 将容器的 3306 端口映射到主机的 3306 端口
- v /dockerData/mysql/conf:/etc/mysql : 将配置文件挂载到主机
- e MYSQL_ROOT_PASSWORD=root : 设置 mysql 登录密码
- d 后台运行容器,并返回容器 id
mysql:8 我运行的镜像名,也可替换成镜像 id

起動が成功したかどうかを確認する

docker psこのコマンドを使用して、ターゲット コンテナーが実行されているかどうかを確認できます。

Docker コンテナーの起動には時間がかかるため、このコマンドを実行する前にしばらく待ってください。

コンテナーは起動中は実行中のように見えますが、エラーが発生すると停止します。

コンテナーが実行されていないことがわかり、トラブルシューティングが必要な場合は、コンテナーの起動ログをチェックしてエラー メッセージを見つけることができます。

 
 
# 其中 id 需要替换为容器启动后返回的容器 id
$ docke logs id

エラー メッセージを確認し、Web 検索を実行して修正してください。

MySQLデータベースに接続する

他のコンピューター上のデータベース接続ソフトウェアを介して、Docker 上で実行されている Mysql サーバーに接続できます。

たとえば、Navicat を介してデータベースに接続し、接続する前に Mysql コンテナが正常に起動することを確認できます。

エラー: Navicat は caching_sha_password 暗号化方式をサポートしていません

Mysql 8 をインストールした後、Navicat を使用して接続すると、「navicat は caching_sha_password 暗号化方式をサポートしていません」というエラーが報告される場合があります。次の方法で解決します。

コンテナに

 
 
$ docker exec -it mysql bash

MySQLにログインする

 
 
 $ mysql -uroot -p

データベースの表示と選択

 
 
$ show databases;
$ use mysql

暗号化方式を変更し、Mysql および Mysql コンテナを終了します。

 
 
$ select host,user,plugin from user;
$ alter user 'root'@'%' identified with mysql_native_password by 'root';
$ exit;
$ exit;

コンテナ内の設定ファイルを変更する

コンテナの作成時に関連する構成ファイルがマウントされていない場合は、コンテナ内の構成ファイルを変更する必要があります。

コンテナコマンドを入力します。

 
 
$ docker exec -it 容器名/容器id bash

Docker コンテナにはデフォルトでは vim がインストールされていないため、手動でインストールする必要があります。システムに応じて次のコマンドを実行するだけです。

Ubuntuシステム

 
 
$ apt-get update
$ apt install vim 

CentOSシステム

 
 
$ yum -y install vim*

ホストとコンテナ間でファイルをコピーする

実際には、ホストとコンテナーの間でファイルをコピーする必要があることがよくあります。

ホストからコンテナへコピー

 
 
$ docker cp 宿主机本地路径 容器名字/ID:容器路径

$ docker cp /root/123.cnf mysql:/etc/mysql

コンテナからホストへコピー

 
 
$ docker cp 容器名字/ID:容器路径 宿主机本地路径

$ docker cp mysql:/etc/mysql/my.cnf /root

この記事がお役に立ちましたら、「いいね」とシェアをお願いします~

おすすめ

転載: blog.csdn.net/2302_76827504/article/details/130631472