实战~如何组织一个多容器项目docker-compose

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。

image.png

先启动一台nginx查看ip:

image.png


下面开启一台alpine并安装curl测试连通性:

image.png


--link

以上测试还可以换一种方式--link

image.png

docker-compose

image.png

首先创建两个目录:

conf存放nginx的配置文件(图片错了,后面改成conf目录了)

html存放html文件和php文件

image.png

<?php
Sdbhost = 'localhost';
Sdbuser = 'root';
$dbpass = '123456':
$conn = mysql_connect (Sdbhost,Sdbuser,Sdbpass);
if(!$conn)
{
   
    die('Could not connet:'.mysgli error());
    echo 'mysql connected!!
    mysqli close ($conn);
}
?>

然后就是配置文件:

image.png

version: "3"
services:
    nginx:
        image: nginx:alpine
        ports:
        - 80:80
        volumes:
        - /root/html:/usr/shara/nginx/html
        - /root/conf/nginx.conf:/etc/nginx/nginx.conf
    php:
        image: devilbox/php-fpm:5.2-work-0.89
        volumes:
        - /root/html:/var/www/html
    mysql:
        image: mysql:5.6
        environment:
        -MYSQL_ROOT_PASSWORD=123456

worker_processes 1;
events {
    worker_connections 1024;
    }
http {
    include    mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
        listen 80;
        server_name localhost;

        location / {
            root /usr/shara/nginx/html;
            index index.html index.htm;
        }
        error_pase 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/shara/nginx/html;
        }

        location ~ \.php$ {
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
            include fastcgi_params;
        }

    }
}

image.png

访问流程:

image.png

结果就是访问80端口,默认显示index.html。访问phpinfo.php显示信息。访问mysql.php连接成功数据库。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
242 57
|
3月前
|
运维 监控 数据可视化
容器化部署革命:Docker实战指南
容器化部署革命:Docker实战指南
|
2月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
237 58
|
2月前
|
供应链 测试技术 开发者
用 Docker 轻松部署 ERPNext 15:多场景实战指南
ERPNext 15 是一款功能全面的开源企业资源规划系统,结合 Docker 容器化部署,具备高效、灵活、低成本等优势。适用于小微企业数字化起步、多分支机构协同办公、开发者测试环境搭建、短期项目管理及企业内部培训等多种场景。模块化设计支持按需扩展,满足不同规模企业需求,是实现高效企业管理的理想选择。
用 Docker 轻松部署 ERPNext 15:多场景实战指南
|
2月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
300 11
|
2月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
197 1
|
3月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
1月前
|
安全 持续交付 Docker
Docker:重塑现代软件交付的容器引擎
Docker:重塑现代软件交付的容器引擎