尝试使用docker设置LAMP堆栈, 并找到并尝试使用https://hub.docker.com/r/linode/lamp/
但我无法找到并且不知道如何访问链接到域的文件 或者如何从example.com等更改域名。
我认为我真正的问题是如何更改文件或重建图像 来自其他人。
答案 0 :(得分:1)
首先,考虑在单独的容器中使用microservices
。这将提供以下优势:
现在Docker的创建考虑了microservices
,因此对于LAMP Stack
,我建议在容器中使用Apache+PHP
,在另一个容器中使用mysql
。要使容器彼此通信,请创建一个userdefined
网络并将两个容器放入其中。
现在回到你的问题:
您可以使用3个选项来使用自定义配置文件:
您需要在创建容器时安装配置文件(推荐):
sudo docker run -d --name my-apache -v /path/to/custom/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd
请注意,此示例使用library
中的apache2
(官方)docker hub
图片,您应参阅图片创建者关于自定义图片的说明。
您可以手动编辑正在运行的容器内的配置文件,并commit
将其作为新图像。
sudo docker commit my-apache myrepository/myimagename:tag
sudo docker run -d myrepository/myimagename:tag
通过Dockerfile创建自己的图像,并使用FROM <base image>
指令。
答案 1 :(得分:1)
首先,我想提一下,我不是这个图像+方法的忠实粉丝,因为它捆绑了多个微服务。我建议使用apache2的容器,mysql的容器等。
但是对于LAMP的设置。我使用网站上提供的documentation。
我的路径/xx/test/index.html
包含一些HTML。我将在容器端口上映射容器的端口+将我的文件挂载到容器中的右侧文件夹。
docker run -p 80:80 -t -i -v /root/test/:/var/www/example.com/public_html/ linode/lamp /bin/bash
我正在使用-ti并启动一个bash会话。在这里他们正在启动apache2 + mysql服务。 (这是官方文件的方法。不是我的。这是一种奇怪的方法):
root@35d00285b625:/# service apache2 start
* Starting web server apache2 *
root@35d00285b625:/# service mysql start
* Starting MySQL database server mysqld [ OK ]
* Checking for tables which need an upgrade, are corrupt or were
not closed cleanly.
启动服务后,您可以按ctrl + p
然后按ctrl + q
退出容器。现在你可以检查你的server-ip:80来检查你的HTML代码。如果要替换example.conf,也可以挂载自己的apache2配置。
如果你想改变图像中的foldernames,我建议你创建自己的dockerfile,它以:
开头FROM docker pull linode/lamp
RUN changes..