这是我的docker-compose文件,是否可以将卷添加到我的本地设备中,以便我可以从docker容器的pgadmin从PC存储中访问文件?
version: "3.8"
services:
postgres:
image: postgres:11.5
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=****
- POSTGRES_DB=nanomedicine_db
ports: #outside:inside(container)
- 5432:5432
networks:
- shared-network
volumes:
- C:/profitional/nanomedicine/data:/var/lib/postgresql/data
pgadmin:
container_name: pgadmin4_container
image: dpage/pgadmin4
restart: always
environment:
PGADMIN_DEFAULT_EMAIL:
[email protected]
PGADMIN_DEFAULT_PASSWORD: ****
ports:
- 5050:80
networks:
- shared-network
depends_on:
- postgres
server:
container_name: nanomedicine_server
restart: unless-stopped
image: nanomedicine-server-image:1.0.0
build:
context: nanomedicine-backend
target: production
dockerfile: Dockerfile
ports: #outside:inside(container)
- 8080:8080
networks:
- shared-network
depends_on:
- postgres
client:
container_name: nanomedicine_client
restart: unless-stopped
image: nanomedicine-client-image:1.0.0
build:
context: nanomedicine-frontend
target: production
dockerfile: Dockerfile
ports: #outside:inside(container)
- 3000:3000
networks:
- shared-network
depends_on:
- server
volumes:
postgres-volume:
external: true
networks:
shared-network:
知道从pgadmin
可以将卷添加到我的本地设备上,以便我可以 从Docker容器的PGADMIN从我的PC存储中访问文件?
是的,这正是您需要做的!
注意,从在PostgreSQLContainer(由于SQL语句将在此执行),另一方面,如果您要从PGADMIN GUI访问该文件,则您将必须在PGADMIN容器中执行绑定安装。
在任何容器上执行绑定安装座,只需添加一个卷,如下所示:
volumes:
- C:/path/to/local/directory:/path/to/container/directory
确保在容器中尚不存在以避免错误。
如果将卷放入PostgreSQL容器中,则可以使用路径/path/to/container/directory
。
最终,如果您想使用PGADMIN的“还原...”实用程序(我将在下面留下图像),那么从GUI加载文件要比将卷安装在PGADMIN容器中要容易得多,因为您会此外,必须在PGADMIN容器中设置/path/to/container/directory/<filename>
环境变量,以便能够从GUI访问您的本地文件,因为PGADMIN在ITSConfiguration中执行的操作并非微不足道。
图映像将备份存储在
PGADMIN_CONFIG_STORAGE_DIR
目录中,因此您只需要添加卷::
dpage/pgadmin4
无论我更喜欢在非服务器模式下运行pgadmin,然后它不要求登录并可以访问容器中的
/var/lib/pgadmin/storage/postgres_postgres.com
目录。那是我的pgadmin config:
docker-compose.yml
thing您将能够从pgadmin4中看到
volumes:
- ./pgadmin:/var/lib/pgadmin/storage/postgres_postgres.com
中的备份