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でファイルをドッキングコンテナに接続し、コマンドでファイルを作成しようとすると、上記の警告が表示されます.
    の最後の部分