Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使实际图像文件在docker运行的文件上载过程中持久化?_Php_Docker_File Upload - Fatal编程技术网

Php 如何使实际图像文件在docker运行的文件上载过程中持久化?

Php 如何使实际图像文件在docker运行的文件上载过程中持久化?,php,docker,file-upload,Php,Docker,File Upload,最近,我用PHP开发了一个运行docker的应用程序,包括文件上传过程 但是,当容器退出时,实际上载到服务器的文件将丢失 你是如何处理这件事的? 请告诉我如何使文件持久化 例如: 使用S3等外部服务器存储文件 利用卷的Docker存储功能 这可以使用docker compose完成。您将能够通过将文件装载到外部主机目录来访问容器中的文件。上载到wordpress的文件存储在wp content/uploads中,您可以使用此示例docker compose文件装载此文件: version: '

最近,我用PHP开发了一个运行docker的应用程序,包括文件上传过程

但是,当容器退出时,实际上载到服务器的文件将丢失

你是如何处理这件事的? 请告诉我如何使文件持久化

例如:

  • 使用S3等外部服务器存储文件
  • 利用卷的Docker存储功能

这可以使用docker compose完成。您将能够通过将文件装载到外部主机目录来访问容器中的文件。上载到wordpress的文件存储在
wp content/uploads
中,您可以使用此示例docker compose文件装载此文件:

version: '3'
services:
  mysql-database:
    image: mysql
    container_name: mysql-database
    volumes:
      - ./mysql/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d
    ports:
      - 3306:3306

  wordpress-sites:
    image: wordpress:custom
    build:
      context: ./wordpress
      dockerfile: wordpress.dockerfile
    container_name: wordpress-sites
    links:
      - mysql-database
    depends_on:
      - mysql-database
    ports:
      - 8080:80
    volumes:
      - ./wordpress/wp-content:/var/www/html/wp-content

有关的文档应该能够帮助您

谢谢你的回答。我想学习许多人的各种想法,并使他们引导我的发展,但使用docker compose是使文件持久化的最流行的方法吗?还有其他方法吗?卷更多地用于持久化,但我没有在Dockerfile中使用它们,我只是在docker compose中使用它们,因此,答案是肯定的。您也可以以类似的方式使用Dockerfile中的卷来持久化数据卷,这些卷不是docker compose特有的。使用docker compose没有什么错,但使用docker compose来通过使用卷实现持久性肯定不是某种要求。您也可以直接使用
docker
CLI使用卷。