gpt4 book ai didi

php - 带有默认集线器图像或一个自定义单个堆栈的 Docker LAMP

转载 作者:行者123 更新时间:2023-11-29 07:24:07 25 4
gpt4 key购买 nike

互联网上有一些教程,有些使用 docker-compose,因此结合使用,例如PHP、MariaDB 和 PHPMyAdmin,均来自 hub.docker.com 上的原始项目。这种方法非常快速且易于配置。一个yml文件,整个lamp server基本按要求运行。

version: '3'
services:
php-apache:
image: php:7.3.2-apache-stretch
ports:
- 80:80
volumes:
- D:\test\src:/var/www/html
links:
- 'mariadb'

mariadb:
image: mariadb:10.1
volumes:
- mariadb:/var/lib/mysql
environment:
TZ: "Europe/Rome"
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
MYSQL_ROOT_PASSWORD: "rootpwd"
MYSQL_USER: 'testuser'
MYSQL_PASSWORD: 'testpassword'
MYSQL_DATABASE: 'testdb'

phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: "mariadb"
restart: always
ports:
- 8181:80
volumes:
- /sessions
links:
- 'mariadb'
volumes:
mariadb:

Source (edited)

其他人创建一个 DOCKERFILE 并将所有 apt-get 命令放入该文件中,例如 fauria/docker-lamp 中的这个文件.

FROM ubuntu:16.04
MAINTAINER Fer Uria <fauria@gmail.com>
LABEL Description="Cutting-edge LAMP stack, based on Ubuntu 16.04 LTS. Includes .htaccess support and popular PHP7 features, including composer and mail() function." \
License="Apache License 2.0" \
Usage="docker run -d -p [HOST WWW PORT NUMBER]:80 -p [HOST DB PORT NUMBER]:3306 -v [HOST WWW DOCUMENT ROOT]:/var/www/html -v [HOST DB DOCUMENT ROOT]:/var/lib/mysql fauria/lamp" \
Version="1.0"

RUN apt-get update
RUN apt-get upgrade -y

COPY debconf.selections /tmp/
RUN debconf-set-selections /tmp/debconf.selections

RUN apt-get install -y zip unzip
RUN apt-get install -y \
php7.0 \ ...

虽然第一个似乎简单得多,但第二个有一些冗余(PHP 为 Debian,MariaDB 为 ubuntu,PHPMyAdmin 为 php-alpine)。

那么 Docker 现在运行 3 个服务器吗?一种用于 PHP,一种用于数据库,一种用于 phpmyadmin?这感觉像是在浪费资源,不是吗?

哪种方法是典型的惯例?

最佳答案

根据官方文档:“通常建议您通过为每个容器使用一个服务来分离关注的区域”,这将更容易维护、扩展或更新,而不会影响任何其他服务。

In docker these instances called services so the docker compose running each component as a service

您还可以阅读更多关于 Running multi-service in container 的信息如果你需要了解更多

关于资源使用,它不会像您想象的那样浪费,因为这是将虚拟机与 docker 容器进行比较时的优势之一,因为它使用与主机相同的内核并且不会像什么那样专用于特定资源虚拟机在运行一个完整的独立操作系统时运行

关于php - 带有默认集线器图像或一个自定义单个堆栈的 Docker LAMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54760917/

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