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

如果将 VOLUME 指令放在 Dockerfile 的末尾。

目前,Docker 将为您执行的每个 RUN 创建一个新卷,因此丢弃更改。

这将很快得到解决。同时,只需移动您的 VOLUME 指令,它就可以解决问题:)

于 2013-09-20T18:07:54.913 回答