centos / apache / php / mongodb-无法使之协同工作

时间:2019-01-23 16:24:09

标签: docker docker-compose

距离我尝试启动并运行docker容器已经有几天了,总是出问题。

(大多数情况下)我需要LAMP堆栈,只需要MySQL-> mongoDb。

当然,我首先查看了docker hub并尝试组成其他镜像。配置后谷歌搜索。最简单的一个不能超过设置MONGODB_ADMIN_USER和MONGODB_ADMIN_PASSWORD的阶段,并且总是返回代码1,尽管提到的变量是在yml中设置的。

我尝试仅从centos / mongodb映像开始,安装apache,php和诸如此类的东西,提交它,并在我自己的映像上工作,但是如果没有内核,很难在docker容器中正确安装和运行apache。

所以我再次尝试,在这里找到了有前途的项目:https://github.com/akhomy/docker-compose-lamp 但是不能连接到容器,不能使用默认设置运行localhost,尽管显然组成阶段可以。

你们中有没有一个偶然的工作组docker文件/ docker-compose? 或一些有用的提示?确实,这看起来像是一项简单的任务,从Docker中心获取两个图像,制作docker-compose.yml,向上运行docker-compose,关闭机箱。我不能把头缠在这个:|

1 个答案:

答案 0 :(得分:1)

Docker方法不是将所有服务都放在一个容器中,而是将一个容器用于单个服务。所有Docker工具都与此一致。

要启动LAMP堆栈,只需下载docker-compose,创建定义了3个服务的docker-compose.yml文件并运行docker-compose up

Docker compose是用于容器的编排工具,适用于单机。

您至少需要对这个工具进行一小段浏览,仅作为示例,我提供了示例配置文件:

docker-compose.yml

version: '3'
services:
  apache:
    image: bitnami/apache:latest
    .. here goes apache config ...
  db:
    image: mongo
    .. here goes apache config ...
  php:
    image: php
    .. here goes php config ...

docker-compose up开始之后,您将自动为您创建网络,所有服务都将加入其中。他们将在他们的名字下看到对方(让您说要从php连接到数据库,您将使用db作为主机名)。

要从主机PC连接到此设备,您需要显式公开端口。