部署php接下来的我们用简单的方式来部署以下 web应用的三个常用环境。都是基于docker-hub库
首先在/home目录下创建一个lnmp目录存放接下来的三个环境相关的文件,再创建一个 www的工作目录放置我们的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 测试
部署MySQL这时可以看到已经 nginx 和 php 已经连接成功了
docker run --name mymysql -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest总结
通过上面的三个命令,我们就可以将这三个环境搭建好啦。不过有三点要注意的
- 像mysql这种数据库的数据,我们最好挂载到我们的宿主机,这样就算容器挂了,数据还不会丢失
- 我们尽量将容器内的配置文件挂载到宿主机,这样改容器时就不用进入到容器中了
- –link这个命令时我们暂时采用的,我们也可以用 --network 去解决
下一期我们就来好好讲讲 dockerfile 重中之重的内容



