如何使用码头工人建立一个小型网站



我有一个关于Docker的问题。这个容器的概念对我来说是全新的,我确信我还没有掌握事情是如何工作的(容器,Dockerfiles,...)以及它们是如何工作的。

假设我想在同一个虚拟机上托管小型网站,这些网站由Apache,PHP-FPM,MySQL和可能的Memcache组成。

这就是我的想法:

1)一个包含Apache,PHP,MySQL和Memcache的镜像2) 包含"我的网站"文件的一张或多张图片

我必须找到一种方法来告诉我的第一个图像,在 apache 中,托管网站的网站文件夹存储在哪里。但是,我不知道第一个容器是否可以读取另一个容器中的文件。

这里有人做过类似的事情吗?

谢谢

容器设置应为:

  1. MySQL 容器
  2. 内存缓存容器
  3. 阿帕奇,PHP等
  4. 数据容器(可选)

运行 MySQL 并使用 -p 命令公开其端口:

docker run -d --name mysql -p 3306:3306 dockerfile/mysql

运行内存缓存

docker run -d --name memcached -p 11211:11211 borja/docker-memcached
运行 Web 容器

并将 Web 文件从主机文件系统装载到容器中。它们将在容器内的/container_fs/web_files/提供。链接到其他容器,以便能够通过 tcp 与它们通信。

docker run -d --name web -p 80:80                   
    -v /host_fs/web_files:/container_fs/web_files/  
    --link mysql:mysql                             
    --link memcached:memcached                     
    your/docker-web-container

在您的 Web 容器内查找环境变量MYSQL_PORT_3306_TCP_ADDRMYSQL_PORT_3306_TCP_PORT,告诉您连接到MySQL实例的位置,以及类似的MEMCACHED_PORT_11211_TCP_ADDRMEMCACHED_PORT_11211_TCP_PORT告诉您连接到memcacheed的位置。

使用 Docker 的惯用方法是尝试为每个容器保留一个进程。因此,Apache和MySQL等应该在单独的容器中。

然后,您可以创建一个数据容器来保存您的网站文件,只需使用 --volumes-from 将卷挂载到 Web 服务器容器中即可。有关详细信息,请参阅 https://docs.docker.com/userguide/dockervolumes/,特别是"创建和挂载数据卷容器"。

相关内容

最新更新