为什么我在重建docker image时不丢失postgresql数据?

时间:2018-01-03 12:58:21

标签: postgresql docker

ode

为什么我在运行D2x = diff(X(:,2))./diff(t); D2x = [0; D2x]; D2y = zeros(size(D2x)); D2y(t>=2) = 0.5; plot(t,[D2y 500*D2x]) grid on xlabel('Time [s]') legend('D2y','m1*D2x','Location','NorthEast') 时不会丢失数据。如果这是正常的,为什么我们需要为数据文件夹创建卷?

1 个答案:

答案 0 :(得分:5)

运行命令docker-compose build --force-em --no-cache时,这只会构建来自Dockerfile的Web Docker镜像,在您的情况下,它位于同一目录中。

此命令不会停止您之前使用此撰写文件启动的容器,因此您希望在运行此命令时丢失任何数据。

但是,只要您使用docker-compose down删除容器,或者当容器停止docker-compose rm时,您就会在重新启动容器时找不到postgres数据。

如果要保留数据,并在重新创建容器时让容器取出,则需要为postgres数据卷指定一个名称。

version: '3'

services:
  db:
    image: postgres
    volumes:
      - pgdata:/var/lib/postgresql/data
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

现在,当重新创建容器时,postgres数据不会丢失。