sql >> データベース >  >> RDS >> PostgreSQL

Dockerボリュームを使用したデータベースの永続化

    DockerComposeのドッキング によると 、次のようなものを書くとき:

    volumes:
      - /var/lib/postgresql/data
    

    新しいDockerボリュームを作成し、それを/var/lib/postgresql/dataにマップします。 したがって、docker-compose upを実行するたびに およびdocker-compose down 、新しいボリュームを作成します。 docker volume lsで動作を確認できます 。

    これを回避するには、次の2つのオプションがあります。

    (A)ホストディレクトリをコンテナにマップします

    <HOST_PATH>:<CONTAINER_PATH>を使用して、ホストのディレクトリをコンテナにマップできます。 。

    volumes:
      - /path/to/your/host/directory:/var/lib/postgresql/data
    

    postgresqlのデータは/path/to/your/host/directoryに保存されます コンテナホストの。

    (B)外部コンテナを使用する

    docker-composeには、外部コンテナー のオプションがあります。 。trueに設定すると、必ずしもボリュームが作成されるとは限りません。例を次に示します。

    version: '2'
    services:
      dbdata:
        image: postgres:9.5.2
        volumes:
          - mypostgresdb:/var/lib/postgresql/data
    volumes:
      mypostgresdb:
        external: true
    

    external: trueを使用 、docker-composeはmypostgredbを作成しません ボリュームなので、次のコマンドを使用して独自に作成する必要があります:

    docker volume create --name=mypostgredb
    

    postgresqlのデータは、mypostgredbという名前のDockerボリュームに保存されます。 。 リファレンス を読む 詳細については。




    1. djangoでのsqliteからpostgresqlへの移行

    2. 日付をUTC時刻としてHibernateに保存しますか?

    3. T-SQL火曜日#106:INSTEADOFトリガー

    4. 投稿数を数えるにはどうすればよいですか?