当我在应用程序中发布新功能时,有时我会经常停止/启动 docker。
docker-compose up -d
docker-compose stop
Run Code Online (Sandbox Code Playgroud)
我使用的几乎是最基本的 postgres docker 设置(见下文)。我正在将 /data 文件夹映射到我的主机。
如果我一天多次停止/启动 docker 导致数据损坏,我应该担心什么吗?
调用是docker-compose stop
停止我的 postgres 实例的最佳方法吗?
我的 docker-compose 中的 postgres 服务如下所示:
db:
image: postgres:9.4
volumes:
- "/home/deploy/data/pgdata:/var/lib/postgresql/data"
restart: always
Run Code Online (Sandbox Code Playgroud)
该设置目前在开发中运行顺利,但一旦投入生产,我想确保遵循最佳实践等。
使用,
docker-compose down -v
Run Code Online (Sandbox Code Playgroud)
它的作用基本上是删除您添加的所有卷。如果您不这样做,这些卷将继续存在并耗尽您的空间。它仅删除 docker 容器内的卷。如果您希望该数据在容器移除后仍然存在,则主机中的卷将保留并在容器移除后继续存在。
每当您通过创建 docker 容器时docker run
,Docker 都会创建一个volume/目录来保存有关容器的详细信息。执行后docker run
,如果您查看/var/lib/docker/containers
,您将看到您启动的每个容器都有一个目录。如果您尚未删除先前容器的卷,您将在“容器”目录下看到许多目录。这些目录的名称将是很长的随机字母和数字。因此,如果您在停止容器时不告诉 docker 删除这些目录,那么它将永远存在。我上面提到的选项v
将在您删除容器时删除这些目录。请记住,您/var/lib/docker
只能以 root 用户身份查看该目录的内容。要更改为 root 用户,请sudo -i
在尝试查看目录内容之前使用。
归档时间: |
|
查看次数: |
15058 次 |
最近记录: |