我有一个docker compose文件,用django和postgres数据库构建一个web服务器。基本上看起来是这样的:
version: '3'
services:
server:
build:
context: .
dockerfile: ./docker/server/Dockerfile
image: backend
volumes:
- ./api:/app
ports:
- 8000:8000
depends_on:
- postgres
- redis
environment:
- PYTHONUNBUFFERED=1
postgres:
image: kartoza/postgis:11.0-2.5
volumes:
- pg_data:/var/lib/postgresql/data:rw
environment:
POSTGRES_DB: "gis,backend"
POSTGRES_PORT: "5432"
POSTGRES_USER: "user"
POSTGRES_PASS: "pass"
POSTGRES_MULTIPLE_EXTENSIONS: "postgis,postgis_topology"
ports:
- 5432:5432
redis:
image: "redis:alpine"
volumes:
pg_data:
我正在使用一个卷来持久化我的数据我设法运行我的容器并将数据添加到数据库中。已成功创建卷:docker volume ls
DRIVER VOLUME NAME
local server_pg_data
但该卷为空,docker system df-v的输出显示:
Local Volumes space usage:
VOLUME NAME LINKS SIZE
server_pg_data 1 0B
此外,如果我想或需要使用docker compose down和docker compose up再次构建容器,则数据已从我的数据库中清除。然而,我认为卷是用来使数据持久化到磁盘上的…
我在使用docker和volumes时肯定遗漏了什么,但我不明白:
docker-compose down
后不持久?这个线程(如何使用卷在dockerized postgres数据库中持久化数据)看起来很相似,但解决方案似乎并不适用。
kartoza/postgis图像的配置方式与标准postgres图像不同。其文档注释(在“集群初始化”下):
默认情况下,DATADIR将指向var/lib/postgresql/{major version}。您可以这样装载父位置:-v data volume:/var/lib/postgresql
如果您查看GitHub中的Dockerfile,您还将看到名为卷的父目录,它在这里有一些有趣的语义。
使用您显示的设置,实际数据将存储在
/var/lib/postgresql/11.0
中;您将命名卷挂载在不同的目录/var/lib/postgresql/data
上,这就是它保持空的原因。将卷挂载更改为/var/lib/postgresql
应该可以解决这个问题:
volumes:
- pg_data:/var/lib/postgresql:rw # not .../data
问题内容: 我是tkinter的新手,我注意到当我尝试将图片添加为窗口的背景时,它不会显示。这是代码。 问题答案: 您需要使用指定选项。 另外,如effbot在PhotoImage的页面中所述, 您必须在Python程序中保留对图像对象的引用,方法是将其存储在全局变量中,或者将其附加到另一个对象。
我找到的最接近的答案是这样的。 但我想知道的是,Dockerfile卷命令会被Kubernetes完全忽略吗?或者数据将被持久化到两个地方?一个用于docker卷(在主机中哪个豆荚运行),另一个是Kubernetes的PV? 之所以这样问,是因为我从docker hub部署了一些容器,其中包含VOLUME命令。同时,我也把PVC贴在我的豆荚上。我在考虑是否会在节点中创建本地卷(docker卷,而不
我刚开始使用docker,但我不明白一些事情。我只是使用docker-compose来使用PostgreSQL的基本映像,但我不知道如何在杀死docker甚至删除我的本地映像后使db中的数据持久化。这一切都可能吗? 这是我实际的docker-compose.yml: 也许我应该用体积?怎样
Docker新手 背景:我写了一篇docker作文。yml与docker compose一起运行时,将在我的箱子上构建并运行良好。注意:我的docker撰写。yml下载Postgres图像。 然后,我将我的docker图像发布到docker hub。 在一台新机器上,我使用docker拉取我的图像,然后运行它。 我收到的错误主要是“我找不到数据库”。未下载Postgres图像。 我的问题:当我拉我
我正在为一个django应用程序创建一个 docker-compose 配置,Dockerfile 成功构建,但是当我编写它们时,django 返回一个问题 - 无法连接到 posgres。 我运行<code>docker compose运行web bash<code>,发现redis和posgres都无法连接。 我的docker-compose.yml文件: 执行< code>docker-co
问题内容: 我对Docker非常陌生,我想在我的计算机上映射node_modules文件夹(出于调试目的)。 这是我的docker-compose.yml 我在Mac上使用Docker。当我运行时,一切正常,但是它在我的计算机上创建了一个node_modules文件夹,但是它是空的。我进入容器和ls node_modules的仓库,所有软件包都在那里。 我也如何在计算机上的容器中获取内容? 谢谢