「Podman - コマンド」の版間の差分

ナビゲーションに移動 検索に移動
(文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{…)
 
220行目: 220行目:
</center>
</center>
<br>
<br>
<code>source</code> または <code>src</code>は両方とも使用できる。<br>
また、<code>target</code>、または、<code>dst</code>は両方とも使用できる。<br>
<br>
===== 匿名ボリューム =====
ホスト側に/var/lib/podman/volumesディレクトリ内 (Podmanが管理する領域) に自動的にボリュームが確保されて、指定したコンテナ内のディレクトリと共有される。<br>
識別のためにハッシュ値 (ランダムなID) が自動的に振られており、同一のネットワークからそのハッシュ値でアクセスすることができる。<br>
<br>
ただし、コンテナ削除後もデータは保持されるが、特定が難しい。<br>
<br>
podman container run --mount type=volume,dst=<コンテナ側のディレクトリパス  例: /tmp/sample> <コンテナ名/イメージ名:タグ名>
<br>
===== 名前付きボリューム =====
名前付きボリュームは、明示的に名前を付けて管理できる。<br>
これは、複数のコンテナ間でデータ共有が容易であり、コンテナ削除後もデータを容易に特定・再利用可能である。<br>
<br>
匿名ボリュームと同様、ホスト側には/var/lib/podman/volumesディレクトリ内に領域が確保されて、指定したコンテナ内のディレクトリと共有される。<br>
ホスト名を指定するため、同一のネットワークからそのホスト名でアクセスすることができる。<br>
<br>
podman container run --mount type=volume,src=<ボリューム名>,dst=<ホスト名>:<コンテナ側のディレクトリパス  例: /tmp/sample> <コンテナ名/イメージ名:タグ名>
<br>
また、名前付きボリュームは、事前作成することも可能である。<br>
podman volume create <ボリューム名>
<br>
===== バインドマウント =====
バインドマウントは、ホストの特定のディレクトリやファイルを直接コンテナにマウントする。<br>
バインドマウントを行う場合、ホスト側のパスは絶対パスである必要がある。<br>
また、ホスト側のファイルシステムに直接依存する。<br>
<br>
<u>ホスト側のカレントディレクトリ内</u>にある指定したディレクトリとコンテナ側の指定したディレクトリが共有される。<br>
podman container run --mount \
                  type=bind,src=<ホスト側のディレクトリパス  例: $PWD/host-sample>,dst=<コンテナ側のディレクトリパス  例: /tmp/container-sample> <コンテナ名/イメージ名:タグ名>
<br>
ホスト側がSELinuxを使用している場合は、ボリュームのマウントに<code>:Z</code>オプションを付加する必要がある。<br>
これは、Podmanにボリュームのコンテンツをコンテナ内のラベルと一致するようにラベルを変更するよう指示するものである。<br>
podman run -d --rm -v /<ホスト側のディレクトリのパス 1>/:/<コンテナ側のディレクトリのパス 1>:Z -v /<ホスト側のディレクトリのパス 2>/:/<コンテナ側のディレクトリのパス 2>:Z
<br>
また、読み取り専用にすることもできる。<br>
podman container run --mount \
                  type=bind,src=<ホスト側のディレクトリパス  例: $PWD/hoge>,dst=<コンテナ側のディレクトリパス  例: /tmp/piyo>,readonly <コンテナ名/イメージ名:タグ名>
<br>
===== ボリュームの確認 =====
ボリュームの一覧表示を行う。<br>
podman volume ls
<br>
ボリュームの詳細を確認する。<br>
podman volume inspect <ボリューム名>
<br>
ボリュームを作成する。<br>
podman volume create <ボリューム名>
<br>
ボリュームを削除する。
podman volume rm <ボリューム名>
<br>
===== マウントの使い分け =====
* 匿名ボリューム
* 匿名ボリューム
*: ホスト側に/var/lib/podman/volumesディレクトリ内に領域が確保されて、指定したコンテナ内のディレクトリと共有される。
*: 一時的なデータ保存
*: 識別のためにハッシュ値が振られており、同一のネットワークからそのハッシュ値でアクセスすることができる。
*: コンテナ個別のデータ管理
*: <code>podman container run --mount type=volume,dst=<コンテナ内のディレクトリパス  例: /tmp/sample> <コンテナ名/イメージ名:タグ名></code>
*: <br>
*: <br>
* 名前付きボリューム
* 名前付きボリューム
*: 匿名ボリュームと同様、ホスト側には/var/lib/podman/volumesディレクトリ内に領域が確保されて、指定したコンテナ内のディレクトリと共有される。
*: データベース等の永続化が必要なデータ
*: ホスト名を指定するため、同一のネットワークからそのホスト名でアクセスすることができる。
*: 複数コンテナ間でのデータを共有する場合
*: <code>podman container run --mount type=volume,src=<ボリューム名>,dst=<ホスト名>:<コンテナ内のディレクトリパス  例: /tmp/sample> <コンテナ名/イメージ名:タグ名></code>
*: バックアップが必要なデータ
*: <br>
*: <br>
* バインドマウント
* バインドマウント
*: <u>ホスト側のカレントディレクトリ内</u>にある指定したディレクトリとコンテナ側の指定したディレクトリが共有される。
*: 開発環境でのソースコードの共有
*: <code>podman container run --mount type=bind,src=<ホスト側のディレクトリパス  例: $PWD/host-sample>,dst=<コンテナ内のディレクトリパス  例: /tmp/container-sample> <コンテナ名/イメージ名:タグ名></code>
*: ホスト側の特定ファイルへのアクセスが必要な場合
<br>
ホスト側がSELinuxを使用している場合は、ボリュームのマウントに<code>:Z</code>オプションを付加する必要がある。<br>
これは、Podmanにボリュームのコンテンツをコンテナ内のラベルと一致するようにラベルを変更するよう指示するものである。<br>
podman run -d --rm -v /<ホスト側のディレクトリのパス 1>/:/<コンテナ側のディレクトリのパス 1>:Z -v /<ホスト側のディレクトリのパス 2>/:/<コンテナ側のディレクトリのパス 2>:Z
<br>
<br>


案内メニュー