创建目录和文件
mkdir /var/www/html -p
,创建目录html
mkdir /var/www/conf.d -p
,创建目录conf.d
- 在
/var/www/html
下创建index.php
文件,内容<?php phpinfo();?>
- 在
/var/www/conf.d
下创建default.conf
文件
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.php index.htm;
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000; #重点:此处写docker里边php的容器名称:9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
}
- 设置
/var/www
目录权限:组www-data、拥有者www-data、八进制0755!(否则访问会有权限问题)
拉取镜像
#拉取php 5.6版本
docker pull php:5.6-fpm
#拉取nginx最新版
docker pull nginx:latest
创建php容器
docker run -p 32768:9000 --name php -v /var/www/html:/var/www/html -d php:5.6-fpm
各项参数说明
- --name 为容器命名为php
- -v 挂载文件,这里是把当前宿主机的目录 挂载到容器的项目目录上(本地目录:容器内目录)
- -p 端口 32768:9000 代表把宿主机的32768端口映射到容器的9000端口
- -d后台守护进程
- php后面的冒号:版本号
创建nginx容器
docker run -p 88:80 --name nginx -v /var/www/html:/usr/share/nginx/html -v /var/www/conf.d:/etc/nginx/conf.d --link php:phpfpm -d nginx:latest
--link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。
查看服务运行情况:
docker ps -a
#当STATUS 为Up的时候才算启动成功
正常安装的全过程记录(方法适用与贝壳云和N1)
[root@N1:~]# docker pull php:5.6-fpm
5.6-fpm: Pulling from library/php
711c3a2baeda: Pull complete
0a273a3c3223: Pull complete
9dbe9d898f22: Pull complete
ac488f1008ef: Pull complete
388cbbc3d152: Pull complete
d8db1921abd4: Pull complete
5083f74b6974: Pull complete
9ddc237958ce: Pull complete
776d01e7fbc0: Pull complete
89ea877dfcd4: Pull complete
Digest: sha256:4f070f1b7b93cc5ab364839b79a5b26f38d5f89461f7bc0cd4bab4a3ad7d67d7
Status: Downloaded newer image for php:5.6-fpm
[root@N1:~]# docker pull nginx:latest
latest: Pulling from library/nginx
b41def3f3781: Pull complete
c3f94513dd2c: Pull complete
e22f50de13a1: Pull complete
Digest: sha256:eb3320e2f9ca409b7c0aa71aea3cf7ce7d018f03a372564dbdb023646958770b
Status: Downloaded newer image for nginx:latest
[root@N1:~]# docker run -p 32768:9000 --name php -v /var/www/html:/var/www/html -d php:5.6-fpm
c236206dfd5ea77f0445a6389243b214af37810bcb067166bb7099e8a1527f39
[root@N1:~]# docker run -p 88:80 --name nginx -v /var/www/html:/usr/share/nginx/html -v /var/www/conf.d:/etc/
nginx/conf.d --link php:phpfpm -d nginx:latest
7e789ef3fc98cdc9b96b7dec5fef30b0a4b8f6afd36aa988703a45c048b07065
[root@N1:~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PO RTS NAMES
7e789ef3fc98 nginx:latest "nginx -g 'daemon of…" 10 seconds ago Up 8 seconds 0. 0.0.0:88->80/tcp nginx
c236206dfd5e php:5.6-fpm "docker-php-entrypoi…" 35 seconds ago Up 33 seconds 0. 0.0.0:32768->9000/tcp php
b3a591bfb225 portainer/portainer "/portainer" 2 months ago Up 26 minutes 0. 0.0.0:9000->9000/tcp portainer
[root@N1:~]#
访问php文件,来测试是否安装正确
http://域名或IP:端口号/
我小钢炮局域网IP是192.168.3.3,此处即是:http://192.168.3.3:81
!已经搭好的:
其他知识点:
- 关于对docker run --link的理解:https://www.jianshu.com/p/21d66ca6115e
- Docker容器间的link和端口映射:https://blog.csdn.net/qq_35394891/article/details/80189240
版权属于:大卫科技Blog
本文链接:https://www.iyuu.cn/archives/129/
转载时须注明出处