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アプレットのスクロールビューの左右連動を実現するための具体的なコードを参考...

docker デプロイメントの実装手順 lnmp-wordpress

目次1. 実験環境2. Dockerソースをインストールする3. Dockerをインストールする4....

React Hooksの使用例

目次簡単なコンポーネントの例より複雑な親子コンポーネントのケースオンセレクトの書き方反応する子供Re...

MySQL学習データベース操作DML初心者向け詳細解説

目次1. ステートメントを挿入する1.1 行を挿入する1.2 複数行を挿入する1.3 クエリステート...

MySQLの浅いエントリと深いエグジットの原則についての簡単な説明

目次1. ページの概要2. 下限と上限3. ページディレクトリを使用する4. ページの実際の外観4....

MySQL のクラスター化インデックスとクラスター化インデックスの成長の仕組みを理解する

このノートでは、 MySQL の B+Tree インデックスとは何ですか?クラスター化インデックスは...

Mysql マスタースレーブ同期構成の実践の詳細な説明

1. はじめに以前、「MySQL マスター スレーブ同期の原理」という記事を書きました。この記事を読...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

ウェブサイトのデザインを改善するための役立つ提案を提供します

<br />ウェブサイトを科学的にデザインする: アイトラッキング研究から学ぶ 23 の...

CSS3 ボタン境界アニメーションの実装

まず効果を見てみましょう: html <a href="#"> &l...

Nginx の負荷分散構成、ダウンタイム発生時の自動切り替えモード

厳密に言えば、nginx には負荷分散バックエンド ノードのヘルス チェック機能はありませんが、デフ...

Linx awk入門チュートリアルの詳細な説明

Awk はテキスト ファイルを処理するためのアプリケーションであり、ほぼすべての Linux システ...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

CSSの記述形式、モバイルページの基本構造の詳細な説明

1. CSSの記述形式1. インラインスタイルCSSコードを開始タグに直接記述することができます&l...