Dockerベース(8)-ボリューム
ボリュームとは?
ドッキング層アーキテクチャ
ドッキングステーションはコンテナ層と画像層に分かれていることがわかります.
画像を構築し、画像レイヤを表示し、5つの異なるレイヤに分けます.
たとえば、画像です.
第1層:奮闘の基礎
階層2:必要なプロセスをaptパッケージにダウンロード
...
Layer 5:
積み重ねられた構造.
新しいイメージが必要なときにソースコードを変更して構築する場合は、次の手順に従います.
レイヤ1~レイヤ3を維持し、レイヤ4から変更するだけです.
コンテナを実行すると、イメージレイヤは読み取り専用なので変更できません.
ボリュームの処理
ホストボリューム
docekr run -d \
--name nginx \
-v /opt/html:/usr/share/nginx/html \
nginx
ホスト上の/opt/htmlディレクトリをNginx上のWebルートディレクトリにマウントする実習
デスクトップ上のhtmlフォルダのindex.htmlというファイルを生成します.
<h1>Hello world!</h1>
index.htmlには上のようなコードがあります.まだあります.
docekr run -d \
--name nginx \
-p 80:80 \
-v /$(pwd)/html:/usr/share/nginx/html \
nginx
// $(pwd)는 현재 호스트의 워킹 디렉토리 경로
コマンドを実行します.これは、ホスト80ポートとコンテナ80ポートとを接続するnginxに
-v
コマンドをロードした後のファイルをコンテナのパスとすることを意味する.を選択します.
curl localhost
あるいは命令でリースを確認します.localhostを使用してWebブラウザに接続
うまくいく
ボリュームコンテナ
docker run -d \
--name my-volume \
-it \
-v /$(pwd)/html:/usr/share/nginx/html \
ubuntu:focal
// my-volume 컨테이너의 볼륨을 공유
docker run -d \
--name nginx \
--volumes-from my-volume \
-p 80:80 \
nginx
--volumes-from
命令を使用します.docker inspectを使用してnginxコンテナ内のMounts情報をチェックし、上記のコマンドを順次実行すると、データのソースと宛先が表示されます.
ubuntuボリュームコンテナを通って来ましたが、ソースにはホストパスがあります.
ドッキングボリューム
ドッキングステーションが提供するボリューム管理機能によるデータの保持
基本的には
/var/lib/docker/volumes/${volume-name}/_data
にデータが格納されています// db 도커 볼륨 생성
docker volume create --name db
// 도커의 db 볼륨을 nginx의 웹 루트 디렉토리로 마운트
docker run -d \
-e MYSQL_DATABASE=simon \
-e MYSQL_ROOT_PASSWORD=simon \
-v db:/var/lib/mysql \
-p 3306:3306 \
mysql:5.7
mysqlコンテナは、2つの環境変数を指定する必要があります:MYSQL_DATABASE
:最初に作成したデータベースの名前MYSQL_ROOT_PASSWORD
:ルートパスワード-e
命令語で一緒に指定します./var/lib/mysql
:mysql蓄積データのパス読み込み前にボリュームを接続
ボリューム接続設定では、
:ro
(読み取り専用)オプションで読み取り専用マウントオプションを設定できます.// 호스트 볼륨을 nginx의 웹 루트 디렉토리로 읽기 전용 마운트
docker run -d \
-v $(pwd)/html:/usr/share/nginx/html:ro \
nginx
bashでファイルをドッキングコンテナに接続し、コマンドでファイルを作成しようとすると、上記の警告が表示されます.
の最後の部分
Reference
この問題について(Dockerベース(8)-ボリューム), 我々は、より多くの情報をここで見つけました https://velog.io/@ghdud0503/Docker-기초-8-볼륨テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol