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

推薦する

LinuxサーバーにGRUBをインストールする手順

Linux サーバーに GRUB をインストールする方法クラウド移行ツールを使用して、CentOS ...

html+cssレイアウトの3つの方法(ナチュラルレイアウト/フローレイアウト/ポジショニングレイアウト)

1. 自然なレイアウト<br />レイアウトは変更せずに自動的に左揃えになります。 2....

CocosCreatorでWeChatゲームを作成する方法

目次1. WeChatパブリックプラットフォームからWeChat開発者ツールをダウンロードする2. ...

LinuxでのMySQLのインストール手順

1. mysql tar ファイルをダウンロードします。参考: 2. インストールパッケージがあるデ...

重複リクエストを削除するAxiosのソリューションについての簡単な説明

目次1. 重複したリクエストをキャンセルする2. すべてのリクエストをクリーンアップするこのソリュー...

Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

序文HTTP と HTTPS日常生活でよく使われる URL は、おおまかに次の 2 種類に分けられま...

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...

JavaScript の new 演算子の原理と例の詳細な説明

新しい用途new の機能は、コンストラクターを通じてインスタンス オブジェクトを作成することです。イ...

CSS3 で六角形の境界線を実装するサンプルコード

一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...

固定ボトムコンポーネントを実装した Vue の例

目次【効果】 【実施方法】 【効果】 【実施方法】 <テンプレート> <div i...

CSSでemを開く正しい方法の詳細な説明

「通常 1em=16px」と言うのはなぜですか?ユーザーのブラウザによってレンダリングされるデフォル...

データページング効果を実現する js オブジェクト

この記事の例では、データのページング効果を実現するためのjsオブジェクトの具体的なコードを参考までに...

MYSQL における char と varchar の違い

CHAR 型と VARCHAR 型は似ていますが、主に格納場所、末尾のスペース、取得方法が異なります...

HTML2 キャンバス SVG が認識されない場合の解決策

ウェブページを画像としてキャプチャする新機能があったので、人気のhtml2canvasを使ってみまし...

iframe ページで js 関数を呼び出すには js を使用します

最近、私は毎日論文提案に取り組んでいます。自分のスキルを発揮して、再びWebをデザインしたくてうずう...