Docker: ローカル ディレクトリ マウント

1. 事例:MySQLコンテナのデータマウント

  1. MySQL コンテナをチェックして、データ ボリュームがマウントされているかどうかを確認します。
  2. ホスト ディレクトリに基づいて、MySQL データ ディレクトリ、設定ファイル、および初期化スクリプトのマウントを実装します。
[root@172 _data]# docker inspect nginx

docker inspect nginxは、Docker コンテナーまたはイメージの構成およびメタデータに関する詳細情報を取得するために使用されるコマンドです。

docker inspect コマンドを実行すると、名前、ID、作成時間、ネットワーク設定など、指定したコンテナまたはイメージに関するさまざまな情報を含む JSON 形式の出力が返されます。 、マウント ポイント、ポート マッピング、環境変数、イメージ情報など。

docker inspect nginx コマンドの場合、「nginx」という名前のコンテナに関する詳細情報が返されます。この情報を使用して、コンテナーの構成、ネットワーク設定、マウント ポイント、およびその他の関連メタデータを理解できます。

マウント情報
ここに画像の説明を挿入します

データ量を表示する
ここに画像の説明を挿入します

MySQLのデータボリュームがホスト上にマウントされている場所を確認しますが、データボリュームを設定していないため文字化けしています。
ここに画像の説明を挿入します

mysqlの重要なデータはホストマシンにあります
ここに画像の説明を挿入します

2. MySQL を指定したディレクトリにマウントします。

MySQL はデータ ストレージ ディレクトリをホストにマウントしますが、MySQL は匿名ボリュームを生成します。MySQL をアップグレードするときは、元のデータが失われないように元の MySQL コンテナを削除します (もちろん、元のデータをmysql (匿名ボリューム) のバージョンをアップグレードした後、コンテナ ディレクトリと指定されたディレクトリをホストにマウントできます。

# 挂载本地目录
-v 本地目录:容器内目录
# 挂载本地文件
-v 本地文件:容器内文件

注: ローカル ディレクトリまたはファイルは / または ./ で始まる必要があります。名前が直接始まる場合は、ローカル ディレクトリ名ではなくデータ ボリューム名として認識されます。


ホスト ディレクトリに基づいて、MySQL データ ディレクトリ、設定ファイル、および初期化スクリプトのマウントを実装します。

ここに画像の説明を挿入します

# 1.删除原来的MySQL容器
docker rm -f mysql

# 2.进入root目录
cd ~

# 3.创建并运行新mysql容器,挂载本地目录
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v ./mysql/data:/var/lib/mysql \
  -v ./mysql/conf:/etc/mysql/conf.d \
  -v ./mysql/init:/docker-entrypoint-initdb.d \
  mysql

# 4.查看root目录,可以发现~/mysql/data目录已经自动创建好了
ls -l mysql
# 结果:
总用量 4
drwxr-xr-x. 2 root    root   20 5月  19 15:11 conf
drwxr-xr-x. 7 polkitd root 4096 5月  19 15:11 data
drwxr-xr-x. 2 root    root   23 5月  19 15:11 init

# 查看data目录,会发现里面有大量数据库数据,说明数据库完成了初始化
ls -l data

# 5.查看MySQL容器内数据
# 5.1.进入MySQL
docker exec -it mysql mysql -uroot -p123
# 5.2.查看编码表
show variables like "%char%";
# 5.3.结果,发现编码是utf8mb4没有问题
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8mb3                        |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+

# 6.查看数据
# 6.1.查看数据库
show databases;
# 结果,hmall是黑马商城数据库
+--------------------+
| Database           |
+--------------------+
| hmall              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)
# 6.2.切换到hmall数据库
use hmall;
# 6.3.查看表
show tables;
# 结果:
+-----------------+
| Tables_in_hmall |
+-----------------+
| address         |
| cart            |
| item            |
| order           |
| order_detail    |
| order_logistics |
| pay_order       |
| user            |
+-----------------+
# 6.4.查看address表数据
+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
| id | user_id | province | city   | town     | mobile      | street        | contact   | is_default | notes |
+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
| 59 |       1 | 北京     | 北京   | 朝阳区    | 13900112222 | 金燕龙办公楼   | 李佳诚    | 0          | NULL  |
| 60 |       1 | 北京     | 北京   | 朝阳区    | 13700221122 | 修正大厦       | 李佳红    | 0          | NULL  |
| 61 |       1 | 上海     | 上海   | 浦东新区  | 13301212233 | 航头镇航头路   | 李佳星    | 1          | NULL  |
| 63 |       1 | 广东     | 佛山   | 永春      | 13301212233 | 永春武馆       | 李晓龙    | 0          | NULL  |
+----+---------+----------+--------+----------+-------------+---------------+-----------+------------+-------+
4 rows in set (0.00 sec)

おすすめ

転載: blog.csdn.net/Blue_Pepsi_Cola/article/details/134189205