Dockerfile でのボリュームのマウントと docker -v コマンドによるマウントには明らかな違いがあります。 1. ボリュームDockerfile で VOLUME を使用してホスト マシンにマウントされたボリュームは匿名ボリュームです。ホスト マシンでは、/var/lib/docker/volumes/ ディレクトリに自動的に匿名でマウントされます。コードは次のとおりです。 frolvlad/alpine-java:jre8-slim より メンテナー oas.cloud nickdir をコピーします。 ボリューム /usr/local/oas/file/ ワークディレクトリ /usr/local/oas/ 上記の VOLUME /usr/local/oas/file/ は、コンテナ内のディレクトリのパスを定義します。このディレクトリは、コンテナ作成プロセス中にコンテナ内に作成され、ホスト上のマウント ディレクトリ名はランダムに生成されます。 例えば:
ホストマシン上で
ディレクトリはコンテナ内の/usr/local/oas/file/ディレクトリに対応します。 2. docker -vdocker -v はホストマシンにマウントされる特定のディレクトリを指定できるため、Dockerfile の VOLUME マウント方法よりも制御性が向上します。コードは次のとおりです。 $ docker run --name tengine-web -d -p 9527:80 -p 9000:9000 \ -v /usr/local/tengine/logs:/var/log/nginx \ -v /usr/local/tengine/conf.d:/etc/nginx/conf.d \ nginx.conf を /etc/nginx/ にコピーします。 -v /usr/local/tengine/html:/usr/share/nginx/html \ -v /usr/local/oas/file:/usr/local/oas/file nginx 上記のコマンドは、ホストの /usr/local/tengine/logs などのディレクトリを、コンテナの /var/log/nginx などの対応するディレクトリにマウントできます。コロンの前のパスはホスト ディレクトリ (絶対パス) で、コロンの後のパスはイメージにマウントされたパス (絶対パス) です。 補足: Dockerデータボリュームマウントコマンドvolume (-v)とmountの違い 1. はじめにユーザーは、docker run の --volume/-v または --mount オプションを使用してデータ ボリュームを持つコンテナーを作成できますが、これら 2 つのオプションには微妙な違いがあり、ここでまとめます。 2. コマンドの使用法
パラメータ --volume (または短縮形 -v) はバインドマウントのみ作成できます。例: docker run --name $コンテナ名 -it \ -v $PWD/$コンテナ名/app:/app:rw \ -v $PWD/$コンテナ名/data:/data:ro \ avocado-cloud:最新の /bin/bash 注: コマンド形式: [[ホストディレクトリ:]コンテナディレクトリ[:オプション]]] HOST-DIR を指定する場合は絶対パスでなければなりません。パスが存在しない場合は自動的に作成されます。 この例では、rw は読み取り/書き込み、ro は読み取り専用を意味します。 --mount パラメータは、デフォルトでボリュームをマウントするために使用されますが、バインドマウントや tmpfs の作成にも使用できます。 type オプションが指定されていない場合、デフォルトではボリュームがマウントされます。ボリュームは、より柔軟にデータを管理できる方法です。ボリュームは、docker volume コマンド セットを通じて管理できます。例: docker run --name $コンテナ名 -it \ --mount type=bind、source=$PWD/$CONTAINER_NAME/app、destination=/app \ マウント --mount ソース=${コンテナ名}-data、マウント先=/data、読み取り専用 \ avocado-cloud:最新の /bin/bash 注: ボリュームマウントコマンドの形式: [type=volume,]source=my-volume,destination=/path/in/container[,...] バインドマウントコマンドの形式を作成します。 タイプ=bind、ソース=/path/on/host、宛先=/path/in/container[,...] バインド マウントを作成し、ソースを指定する場合、絶対パスである必要があり、パスがすでに存在している必要があります。 この例では、readonlyは読み取り専用を意味します 3. 相違点のまとめ1. バインドマウントの作成とボリュームのマウントの比較
*注記: Docker は、sudo chown someuser: -R /var/lib/docker/volumes/somevolume を実行して、ボリュームの内容をホスト上の一般ユーザーに単純に公開することはできません。 それ以上の権限が開かれると、セキュリティ上のリスクが生じます。この点では、Podman の設計の方がはるかに理想的です。ボリュームは $HOME/.local/share/containers/storage/volumes/ パスに保存されるため、利便性が高く、セキュリティも確保されます。 コンテナはルート権限なしで実行できます。これは Podman の利点の 1 つです。実際の使用では非常に大きなメリットがあります。 2. バインドマウントを作成するときに --volume と --mount を使用する比較
上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
<<: CSS3はキングをマッチングさせるときにパーティクルアニメーション効果を実現します
>>: Vue 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明
問題の説明ご存知のとおり、CSS を記述する場合、HTML のクラスの定義または ID の定義に従っ...
<br />原文: http://andymao.com/andy/post/104.h...
この例の Web カラー ピッカー機能は、ページ効果を実現するために CSS3 を使用します。つまり...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
このチュートリアルでは、ウェブデザインにおけるFORMフォームタグのさまざまな属性の応用を紹介します...
1. Nginx サービス基盤Nginx (エンジン x) は、パフォーマンスの最適化のために特別...
1. iframe の定義と使用法iframe 要素は、別のドキュメントを含むインライン フレーム...
K8s k8s はクラスターです。クラスターには複数の名前空間があります。名前空間の下には複数のポッ...
この記事では、一般的な基本的な Linux コマンドとその使用方法を例を使って説明します。ご参考まで...
目次1. Tsとは何か2. 基本的な文法1. プリミティブデータ型を宣言する2. オブジェクト型を宣...
最近、MySQL の起動中にエラーが発生しました。エラー メッセージは次のとおりです。 エラー 20...
序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...
シミュレーションテーブルとデータスクリプト次の SQL ステートメントをコピーして、sys_dept...
上図のように、パディング値は時計回り(右上、右下)の複合属性であり、パディングの内側の余白がボックス...
1. デザインの方向性を明確にする<br />まず、どのユーザーを対象にデザインするのか...