在上一周笔者对docker了解,仅限于这样认知:它能替代虚拟机,并且比虚拟机更省资源。
在老师和同事的感染下,感觉不学习docker好像就不能在IT圈混一样,于是,开始涌入Docker的大潮中。但万事开头难,听了同事的推荐,看了宁皓网的基础的视频之后感觉仅是对基本的命令进行了了解。但是真拿出来用还是不够用的,于是开始搜罗更
重资料,学习搭建LNMP环境。
终于功夫不负有心人,在今天终于是实验成功了,特此写下这篇笔记,为后来人提供一个示例。
docker pull nginx
docker pull bitnami/php-fpm
笔者未进行更改docker源,依然是官方源。
当然,你可以使用中国源。
docker run -d --name myFpm -p -v /var/www/html:/usr/share/nginx/html bitnami/php-fpm
docker run -d --name myNginx -p 8080:80 -v /var/www/html:/usr/share/nginx/html nginx
docker ps -a
可以看到,上述在STATUS一栏中显示UP,其含义为正在运行。
docker inspect myFpm | grep "IPAddress"
在容器中是没有vim命令的,所以不能在容器中直接修改配置文件。所以我们必须通过变通的方式去解决这个问题,否则只能在每个容器中安装vim。
docker exec -it myNginx /bin/bash
查看对应的配置文件位置
/etc/nginx/conf.d/default.conf
使用专用的复制命令将配置文件复制到宿主机,然后在宿主机进行编辑(这就是变通的方法)
docker cp myNginx:/etc/nginx/conf.d/default.conf ./default.conf
这里用到了上一步查询到的配置文件路径信息
location ~ \.php$ {
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
docker cp ./default.conf myNginx:/etc/myNginx:/etc/nginx/conf.d/default.conf
docker exec -it myNginx /bin/bash
service nginx reload
我看了一下,用到的模块还都有。