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
この記事がお役に立ちましたら、「いいね」とシェアをお願いします~