gpt4 book ai didi

php - 如何正确设置数据卷容器?

转载 作者:行者123 更新时间:2023-12-02 21:25:16 25 4
gpt4 key购买 nike

我想设置一个数据卷容器与另一个 LAMP 容器一起工作,但我开始使用 Docker,所以我有一些疑问。

所以我将两个容器运行起来,我们将其命名为(仅作为示例):

  • 灯容器
  • 数据容器

  • 我知道一次运行多个容器的唯一方法是使用 Docker Compose,但我不知道如何设置 compose.yml文件。

    让我们说 lamp-container具有以下存储数据的目录:
    /data/www # meant to contain web content
    /data/www/default # root directory for the default vhost
    /data/logs/ # Nginx, PHP logs
    /data/tmp/php/ # PHP temp directories

    我想将它们分别映射到主机上的本地目录 /home/<username>/container_files (这是运行 docker 的主机上的本地目录)。例如:
    /data/www => /home/<username>/container_files/data/www
    /data/www/default => /home/<username>/container_files/data/www/default
    /data/logs/ => /home/<username>/container_files/data/logs
    /data/tmp/php/ => /home/<username>/container_files/data/php

    任何人都可以用 compose.yml 指出我正确的方向吗?示例文件?我已阅读 docs但让我感到困惑,因为我通常使用虚拟机并且在很多方面与容器不同。

    注意:我应该补充一点,这是考虑一台主机中的一个用户,而不是一台主机中的多个用户。因此,每个想要使用此设置的人都应该在其主机下拥有自己的设置。

    最佳答案

    随着命名卷的引入,数据容器卷已被弃用。命名卷具有数据容器的所有优点,但单独管理,让您可以更轻松地将卷作为数据而不是伪容器进行管理。

    这是一个 docker-compose.yml 示例,用于挂载两个命名卷和另一个网络,您可能会删除大部分不适用于您自己的场景的行:

    version: '2'

    volumes:
    vol-name-1:
    driver: local
    vol-name-2:
    driver: local

    networks:
    internal1:
    driver: bridge

    services:
    service-1:
    build: .
    image: my-service:latest
    volumes:
    - ./auth:/my-app/auth:ro
    - ./host-conf:/my-app/conf
    - vol-name-1:/my-app/data-1
    - vol-name-2:/my-app/data-2
    networks:
    - default
    - internal1
    ports:
    - "8080:80"
    entrypoint: "my-start.sh"

    在上面的示例中,它还挂载了两个主机卷(绑定(bind)挂载),并显示了如何使用 :ro 挂载只读卷。在授权卷上。

    关于php - 如何正确设置数据卷容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39620863/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com