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 とフロントエンド テクノロジーのレイヤー図

推薦する

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

ファイル操作のためのLinuxシステムコール

目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...

ウェブサイトのコンテンツの100~1%はナビゲーションである

ウェブサイトでは、コンテンツの(100-1)%がナビゲーションです1. ジェシー・ジェームズ・ギャレ...

ウェブページ制作TDは隠し表示もオーバーフロー可能

おそらく、この記事にこのようなタイトルを付けると、誰かがこう尋ねるでしょう。「なぜまだテーブルに注目...

MySQLの指定順序ソートクエリについての簡単な説明

最近、空港や駅でフライト情報を表示するものと似た大型スクリーンディスプレイのプロジェクトに取り組んで...

InnoDB エンジンの redo ファイルのメンテナンス方法

InnoDB REDO ログ ファイルのサイズと数を調整する場合は、次の手順に従います。 1. My...

js タグ構文の使用法の詳細

目次1. ラベルステートメントの紹介2. ラベルステートメントの使用序文:日常の開発では、プログラム...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

Docker-compose を使用して Django アプリケーションをオフラインでデプロイする方法

目次開発環境用のDocker-ceをインストールする開発環境用のDocker-composeをインス...

HTML テーブル マークアップ チュートリアル (2): テーブル境界属性 BORDER

デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...

MySQL フェイルオーバー ノート: アプリケーション対応設計の詳細な説明

1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...

Linux (Centos7) での redis5 クラスターの構築と使用方法の詳細な説明

目次1. 簡単な説明2. クラスターを作成する手順2.1. ディレクトリを作成する2.2. ソースコ...

CSS 兄弟要素フローティング分析の概要

float:左/右/なし; 1. 同じレベルフローティング(1)ブロックレベル要素を同じ行に表示する...

Vue CLI のモードと環境変数の詳細な説明

序文実際のプロジェクトの開発では、通常、プロジェクト開発フェーズ、テストフェーズ、最終オンラインフェ...

JavaScript は最大値と最小値のアルゴリズムを通じて AI 三目並べゲームを実装します

では、早速スクリーンショットを実行してみましょう。黒い駒はプレイヤーの位置、赤い駒はコンピュータの位...