栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker第四期 简单部署 nginx php mysql

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker第四期 简单部署 nginx php mysql

前言

接下来的我们用简单的方式来部署以下 web应用的三个常用环境。都是基于docker-hub库
首先在/home目录下创建一个lnmp目录存放接下来的三个环境相关的文件,再创建一个 www的工作目录放置我们的php文件

部署php
> docker run -p 9000:9000 --name myphp -v /home/www:/home/www -w /home/www -d php:7.4-fpm
部署nginx
> docker run --name mynginx -p 8080:80 -v /home/www:/home/www -w /home/www -v /home/lnmp/nginx/conf.d:/etc/nginx/conf.d:ro -d --link myphp:php nginx

在/home/lnmp/nginx/conf.d 目录下创建default.conf 文件。default.conf的默认配置在下方

	参数说明:
-p 端口指定
--name 给容器命名
-v 数据卷挂载 宿主机:容器    // 挂载小知识如果想挂载宿主机当前目录下可以使用 $PWD/www
-w 设置工作目录
-d 后台运行
--link 被链接容器名:重新命名 链接两个容器并且互相通信
default.conf 参考
server {
    listen       80;
    server_name  localhost;
    root     /home/www;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        index index.php index.html index.htm;
    }

   location ~ .php$ {
        fastcgi_pass   php:9000;  // 这里的php 就是 --link myphp:php 这个重新命名的php
        fastcgi_index  index.php;
        fastcgi_param  script_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

注意–link最好使用 命名,要不然我们就需要 通过命令去查找容器的ip了
docker inspect 容器名/id | grep “IPAddress”

结果
>$root@VM-8-11-ubuntu:/home# docker run -p 9000:9000 --name myphp -v /home/www:/home/www -w /home/www 
-d php:7.4-fpm
a9b8e356560c522547d93f4ff6a4aee5c6c5a91c0e9373e9dc90a93365a048a4

> $root@VM-8-11-ubuntu:/home# docker run --name mynginx -p 8080:80 -v /home/www:/home/www -w /home/www 
-v /home/lnmp/nginx/conf.d:/etc/nginx/conf.d:ro -d --link myphp:php nginx
84c701b27f2c07fb3a154f089d237c94b16d49e0fc48288876262d3a4b532572

> root@VM-8-11-ubuntu:/home/www# vim index.php // 创建index.php 打印一个hello world 测试

这时可以看到已经 nginx 和 php 已经连接成功了

部署MySQL
docker run --name mymysql -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

总结

通过上面的三个命令,我们就可以将这三个环境搭建好啦。不过有三点要注意的

  • 像mysql这种数据库的数据,我们最好挂载到我们的宿主机,这样就算容器挂了,数据还不会丢失
  • 我们尽量将容器内的配置文件挂载到宿主机,这样改容器时就不用进入到容器中了
  • –link这个命令时我们暂时采用的,我们也可以用 --network 去解决

下一期我们就来好好讲讲 dockerfile 重中之重的内容

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号