最近学习了docker-compose,把课程作业写一下
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用,项目源码可以在 Github 上查看:https://github.com/docker/compose,主要基于 Python 编写。
关于 Docker Compose 技术可以查看官方文档 Docker Compose
以下的内容是确立在已经下载好 Docker 以及 Docker Compose,可参看 Docker Compose 的官方安装教程 Install Docker Compose
开始实例编写
一、构建项目结构
二、编写各项配置文件
1.apache的Dockerfile
FROM httpd:2.4-alpine
RUN touch /tmp/new_apache.conf; \
cat /usr/local/apache2/conf/original/httpd.conf > /tmp/new_apache.conf; \
echo "Include /usr/local/apache2/conf.d/docker.apache.conf" >> /tmp/new_apache.conf; \
mv /tmp/new_apache.conf /usr/local/apache2/conf/httpd.conf;
2.php的Dockerfile
FROM php:7.4.11-fpm-alpine3.12
3.hpptd配置文件
erverName localhost
LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so
<Directory "/var/www/html/">
AllowOverride All
Require all granted
</Directory>
<VirtualHost *:80>
ServerName docker.dev
ServerAlias www.dev.dev
DocumentRoot /var/www/html
DirectoryIndex index.php index.html
<IfModule proxy_module>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/var/www/html/$1
</IfModule>
<Directory "/var/www/html">
Options +Indexes +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
4.docker-compose
version: "3"
services:
php:
image: php:7.4.11-fpm-alpine3.12
build: './web'
networks:
- mynet
volumes:
- ./web/web:/var/www/html/
apache:
image: httpd:2.4-alpine
build: './compose/apache'
depends_on:
- php
networks:
- mynet
ports:
- "80:80"
volumes:
- ./web/web:/var/www/html/
- ./compose/apache/:/usr/local/apache2/conf.d
networks:
mynet:
5.index.php
<?php
phpinfo();
>
三、运行测试
docker-compose up 直接运行,因为我这里指定了image。也可build后up
浏览器查看结果
成功
以上就是本例的全部操作,欢迎留言讨论~