ホストとコンテナドッカー間ドッカーコピーファイルのコピー
はじめに:
ドッカーデータ管理
本番環境でのドッキングウィンドウの使用は、多くの場合、永続的なデータである必要があり、または複数の容器との間に必要とされます
必ずしもコンテナを伴うデータの共有、データ管理操作
主に2つの方法で管理データコンテナ:
データボリュームを直接ローカルホスト環境にマッピングされたコンテナデータ内のデータボリューム。
データボリューム・コンテナ(データボリューム・コンテナは、特定のデータボリューム・コンテナを維持するために使用しました
もちろん、最も原始的なコピーモードでは、これはデータを管理するための方法ですが、基本的には使用されません。
ほとんどのオリジナルコピーは、データを管理します。
コンテナへのホストファイルのコピー
コンテナディレクトリ:ファイルまたはディレクトリ名のコンテナをコピーするドッキングウィンドウのcp必要
例:
ドッキングウィンドウのcp / liuwenwu /ドッキングウィンドウ/ mycentos02:/ liuww / softwar
ホスト容器にコピーします
ドッキングウィンドウのcpコンテナ名:コンテナディレクトリのホストディレクトリ
例:
ドッキングウィンドウCP mycentos02:liuww / softwar /ドッキングウィンドウ/ bbb.txt / liuwenwu /ドッカ
データボリューム
データボリューム(データボリューム)
データ量が1つ以上の容器のための特別なディレクトリで、それが直接の容器にマッピングされたオペレーティングシステムディレクトリをホストします、
これは便利な機能の多くを提供することができます。
1.データ量は容器の間で共有し、再利用することができます
2.データボリュームの変更はすぐに反映されます
データのボリューム3.更新し、画像には影響しません
4.データボリュームのデフォルトは常にコンテナが削除されても、存在します
データボリューム関連の操作
1. データボリュームを作成します。
ドッキングウィンドウのボリュームは、私の-VOLを作成します
このとき、デフォルトの/ var / libに/ドッキングウィンドウ/ボリュームパスにデータボリューム、データボリュームの新しい場所を見つけるだろう、viewコマンドは次のように:
##パラメータは、番号「1」、文字Lであることができる:大文字または小文字、その効果は同じではありません
LS - 1 / VAR / libに/ドッキングウィンドウ/ボリューム
2. すべてのデータボリュームをチェック
ドッキングウィンドウのボリュームLS
3.参照の詳細指定されたデータ量(JSON形式の表示データ)
ドッキングウィンドウのボリュームは、私の-VOLを検査します
ボリュームを削除します。4.
ドッキングウィンドウのボリュームRM私-VOL
注1:データ量がコンテナのライフサイクルとは独立した永続的なデータに設計された容器を除去した後、データ量ドッカーは自動的に削除されません、
そして、データボリュームへの参照せずにこのような容器に対処するために何のガベージコレクションのメカニズムが存在しない、主のないデータ量は、多くのスペースを占有する可能性があります
だから、速やかに削除します
##データボリュームを搭載し、それはコンテナによって起動時の実行を作成するのではなく作成/起動をするのが最善です
起動コンテナを作成し、かなり面倒なデータボリュームをマウントするコマンドを開始/作成、あなた方の多くは、設定ファイルを変更したい##の後ではなくはありません
5. [スタート]は、データボリュームのコンテナをマウント
## DEMO1 ドッキングウィンドウの実行 - D \ - それ\ - 名mycentos03 \ --mountソース=私の-巻、ターゲット= / Webアプリケーション\ CentOSの:7
注:このコマンドラインで、ホスト・パスの/ var / libに/ドッキングウィンドウ/ボリューム/私の-容量/ _data tomcat01コンテナー・パスおよび/ Webアプリケーションの実行の効果マッピング
## demo2 docker run -d \ -it \ --name tomcat02 \ --mount type=bind,source=/liuww/data,target=/root/webapp02 \ centos:7
注1:linux命令结尾加斜杠有什么用
加了“\”意为将最后的回车换行给注释了,系统理解为命令还没有结束,因而是继续等待用户进行输入,直到读到结束符,如回车
注2:source=my-vol,target=/webapp
my-vol为要挂载的数据卷,如果数据卷不存在,docker会自动创建
/webapp为容器上目录,如果目录不存在, Docke会自动创建
注3:mount选项高级用法
--mount选项的type参数支持三种类型的数据卷
--mount标志:由多个名值对组成,逗号分隔,每个键值由 <key> = <value> 元组组成
1.type=volume普通数据卷(默认即这种类型),映射到主机/var/lib/docker/volumes路径下;
--mount type=volume,source=my-vol,target=/webapp
注:这是type的默认值
2.bind:绑定数据卷,映射到主机指定路径下;
--mount type=bind,source=/webapp,destination=/webapp2
3.tmpfs :临时数据卷,只存在于内存中
docker run -d \
-it \
--name tmptest \
--mount type=tmpfs,destination=/app \
nginx:latest
数据卷容器
数据卷容器
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。
数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载
数据卷容器相关操作
1.新建数据卷容器
docker run -di --name db_data -v /db_data centos:7
注:-v 后面接的共享数据真实存放路径
2.用容器db1、db2测试数据卷容器是否可用
docker run -di --name db1 --volumes-from db_data centos:7 docker exec -it db1 bash cd db_data docker run -di --name db2 --volumes-from db_data centos:7 docker exec -it db2 bash cd db_data
随便创建一个aaa.txt文件就可以查看效果了
效果:上面例子中db1、db2通过db_data来共享了数据