【发布时间】:2021-08-14 01:40:02
【问题描述】:
我使用带有绑定主机的 docker 启动了一个 Django 应用程序来处理用户上传,但现在我想迁移到命名卷,但我的主机中已经有文件,所以我想知道如何将文件从主机复制到卷,这是我的 web 容器的 docker-compose:
version: '3'
services:
db:
restart: always
image: "postgres:13.2-alpine"
container_name: db
ports:
- "5432:5432"
env_file:
- ./.env.dev
volumes:
- ./pgdata:/var/lib/postgresql/data
web:
container_name: web
restart: always
build:
context: .
dockerfile: ./docker/development/Dockerfile
environment:
DEBUG: 'true'
DJANGO_SETTINGS_MODULE: myapp.app_settings.development
command: sh ./docker/development/runserver.sh
ports:
- "8000:8000"
env_file:
- ./.env.dev
volumes:
- .:/app # Enable code reload
- django-static:/app/run/static
- django-media:/app/run/media
depends_on:
- db
volumes:
django-static:
django-media:
这是我的 Dockerfile:
FROM python:3.8
ENV PYTHONUNBUFFERED 1
RUN mkdir /app
WORKDIR /app
COPY ./requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt
# COPY . /app
ADD . /app
RUN apt-get clean && apt-get update && apt install -y netcat
COPY ./docker/development/entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
有一种方法可以将我上传的内容从主机 /home/art/myapp/run/media 和 /home/art/myapp/run/static 复制到卷 django-static 和 django-media 中?
另外,我如何从卷中备份文件?
【问题讨论】:
-
您可以使用
docker cp将文件从您的主机复制到安装在容器内的命名卷。您也可以在另一个方向使用docker cp,将文件从容器中复制到主机。 -
谢谢,但是你能给我一个配置的例子吗?请