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 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明
目次CSS3 ボックスモデルa. CSS3 フィルターb. CSS3 calc関数c. CSS3 ト...
React プロジェクトの構築は非常に簡単ですが、Typescript と組み合わせると、実際にはそ...
これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...
目次1. 事務:取引の 4 つの主な特徴:同時トランザクションはどのような問題を引き起こしますか? ...
序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...
Magento を頻繁に変更する場合、element.style に遭遇することがあります。 これは...
Oracle、DB2、SQL Server などの他の大規模データベースと比較すると、MySQL に...
1. 角を丸くする今日の Web デザインは、常に最新の開発テクノロジーに追随しており、HTML5 ...
目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...
Mysql は人気があり、使いやすいデータベース ソフトウェアです。以下は、mysql の無料インス...
目次TomcatをインストールするTomcat 圧縮パッケージをダウンロードTomcatには3つの主...
原因このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(at...
今日、Tomcat サーバーの設定時にちょっとした問題が発生したので、参考までにいくつかご説明したい...
序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...
1. HTML送信ボタンと下部ボタンの基本構文構造1. HTML送信ボタン入力タグで type=&...