3

Dockerfile を使用してイメージをビルドしようとしたときの質問は次のとおりです。

# PostgreSQL
#
# VERSION   1.0

FROM    ubuntu:12.04
VOLUME  /var/lib/postgresql
# Update the packages
RUN apt-get update
RUN apt-get -y dist-upgrade
# Install PostgreSQL
RUN apt-get -y install sudo postgresql
# Configure PostgreSQL to allow logins from all networks and listen to all ip address
RUN echo "host    all             all             0.0.0.0/0               md5" >> /etc/postgresql/9.1/main/pg_hba.conf
RUN echo "listen_addresses='*'" >> /etc/postgresql/9.1/main/postgresql.conf

EXPOSE  5432

試してみるとイメージをビルドした後: docker run -i -t image_id /bin/bash

/var/lib/postgresql が空になりました!

Docker ボリュームにはドキュメントがあまりないので、何が起こっているのか本当に混乱しています。

4

1 に答える 1

7

Dockerfile の最後に VOLUME 命令を配置した場合。

現在、Docker は実行する RUN ごとに新しいボリュームを作成するため、変更を破棄します。

これはすぐに修正されます。それまでは、VOLUME 命令を移動するだけでうまくいきます :)

于 2013-09-20T18:07:54.913 に答える