Dockerはローカルディレクトリとデータボリュームコンテナ操作をマウントします

Dockerはローカルディレクトリとデータボリュームコンテナ操作をマウントします

1. Dockerはローカルディレクトリをマウントします

Docker は、ホスト上のディレクトリをイメージにマウントすることをサポートします。

対話モードで実行

docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash

バックグラウンド操作

docker run -d -v /home/dock/Downloads:/usr/Downloads --name ubuntu1 ubuntu64

-v パラメータを使用すると、コロンの前のパスはホスト ディレクトリ (絶対パスである必要がある) であり、コロンの後のパスはイメージにマウントされたパスです。

これで、ホスト マシン内のファイルをイメージ内で共有できるようになりました。

デフォルトのマウント パス権限は読み取りと書き込みです。読み取り専用として指定する場合は、roを使用できます。

docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash

2. Dockerデータボリュームコンテナ

Docker は高度な使用方法も提供します。それはデータボリュームと呼ばれます。

データ ボリューム: 「これは実際には、他のコンテナーがマウントするためのデータ ボリュームを提供するために特別に使用される通常のコンテナーです。」コンテナによって定義されたデータマウント情報のような感じです。他のコンテナの起動では、データ ボリューム コンテナで定義されたマウント情報を直接マウントできます。

例:

docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash

通常のコンテナを作成します。 --name を使用して名前を割り当てます (指定しない場合はランダムな名前が生成されます)。

このデータ ボリュームを使用するには、新しいコンテナーを作成します。

docker run -it --volumes-from dataVol ubuntu64 /bin/bash

--volumes-from は、データをマウントするボリュームを指定するために使用されます。

このようにして、新しく作成されたコンテナ内の/usr/Downloadsディレクトリは、ホストディレクトリ/home/dock/Downloadsと同期されます。

補足知識: Linuxシリーズ - DockerはデータボリュームをMySQLにマウントすることでコンテナ構成のローカライズを実現する

MySQLイメージを取得する

docker プル mysql

mysql コンテナを作成して実行する (データ ボリュームを mysql にマウントする)

docker run -p 3306:3306 --name mysql \
ローカルのdockerディレクトリをmysqlディレクトリにコピーします。
ログファイル:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
-d MySQL の

上記の手順を実行した後、MySQL コンテナを起動できません。報告されたエラーは、ファイル /var/lib/mysql-file の読み取りエラーがあるというものです。

###############上記でmysqlを起動できない問題を解決する################

ローカル構成ディレクトリ /usr/local/docker/mysql/conf をコンテナ内の app フォルダに一時的に関連付けます (コンテナ構成ディレクトリを直接関連付けることはできません。ファイル同期の理由により、コンテナ構成ディレクトリは空になり、コンテナを起動できません)。その後、コンテナ構成ファイルを ./conf にコピーして、コンテナ ファイルのコピーの目的を達成します。

docker run -d -p 3306:3306 -v /usr/local/docker/mysql/conf:/app --name tempMysql -e MYSQL_ROOT_PASSWORD=123123 mysql

mysqlコンテナに入る

docker exec -it tempMysql /bin/bash

etc/mysqlディレクトリ内のすべてのファイルをappディレクトリにコピーします。ローカル同期は以前に実行されているため、ローカルフォルダ./confにmysql構成ファイルが表示されます。

cp -r /etc/mysql/* /app

コンテナの削除

docker stop tempMysql

docker rm tempMysql

新しいコンテナを作成して、ローカルの MySQL フォルダをコンテナ内の MySQL 関連ファイルと同期します。

docker run -p 3306:3306 --name mysql \
ローカルのdockerディレクトリをmysqlディレクトリにコピーします。
ログファイル:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123123 \
-d MySQL の

上記のDockerマウントのローカルディレクトリとデータボリュームコンテナの操作は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker コンテナのマウントディレクトリ操作の表示
  • DockerコンテナにNFS共有ディレクトリをマウントする実装
  • Docker - コンテナマウントディレクトリを変更する3つの方法のまとめ
  • Dockerコンテナでホストディレクトリをマウントする方法
  • Dockerを使用してコンテナディレクトリをホストにマウントする方法

<<:  MySQL マスター/スレーブ ステータスを監視するシェル スクリプト

>>:  CSS と HTML とフロントエンド テクノロジーのレイヤー図

推薦する

WeChatアプレットは写真アップロード機能を実現

この記事の例では、WeChatアプレットで写真をアップロードするための具体的なコードを参考までに共有...

Mac に Windows サービスを備えた仮想マシンをインストールする方法

1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...

シンプルなリスト機能を実装するミニプログラム

この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...

vue3 再帰コンポーネントカプセル化の全プロセス記録

目次序文1. 再帰コンポーネント2. 右クリックメニューコンポーネント要約する序文今日、プロジェクト...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

CentOSバージョンにDockerをインストールする際のエラーの解決方法

1. バージョン情報 # cat /etc/system-release CentOS Linux ...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...

仮想マシンクローン Linux centos6.5 システム ネットワーク カード構成グラフィック チュートリアル

Linux システムに触れたばかりの初心者として、VMware 仮想マシンに CentOS6.5 シ...

Vueのウェブページスクリーンショット機能の詳しい説明

最近、プロジェクトで写真をアップロードする要件があるのですが、顧客がアップロードする写真のサイズがま...

2017 最新バージョンの Windows インストール MySQL チュートリアル

1. まず、MySQL の公式サイトから最新バージョンの MySQL をダウンロードします。リンクを...

コンポーネントベースのフロントエンド開発プロセスの詳細な説明

背景<br />フロントエンドを担当する学生は、ページが多すぎると煩雑になるため、開発プ...

MySQLトランザクションとMySQLログの詳細な説明

取引特性1. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...

MySQLテーブル内の重複データをクエリする方法

hk_test(ユーザー名、パスワード) に値を挿入 ('qmf1', '...

HTML でのメタタグと使用法の詳細な説明

これ以上無駄話をして時間を無駄にしないので、今日の話題を始めましょう。 HTML のメタタグ1. メ...

テーブルのネストと境界の結合の問題に対する解決策

【質問】外側のテーブルと内側のテーブルがネストされていて、内側のテーブルと外側のテーブルの両方に境界...