1.拉取镜像文件
sudo docker pull nginx
sudo docker pull php:5.6
sudo docker pull mysql
2:查看已有的镜像
sudo docker images
3:创建宿主文件夹
mkdir -p nginx/www #创建nginx目录用来挂在容器www
4:创建容器并运行
cd nginx #切换目录
sudo docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name xy_mysql mysql
#创建一个mysql容器并运行,-p将宿主机3307端口映射到容器的3306端口,-d宿主机以守护进程在后台运行
sudo docker run -d -p 9000:9000 -v $PWD/www:/usr/share/nginx/html --name myphpfpm --link xy_mysql:mysql php:5.6-fpm
#-v将当前宿主机挂载到容器的/usr/share/nginx/html目录 --link用于php-fpm和mysql容器之间的通信
sudo docker run -d -p 8080:80 -v $PWD/www:/usr/share/nginx/html --name mynginx --link myphpfpm:phpfpm nginx
#构建Nginx容器
配置nginx容器
sudo docker exec -it mynginx /bin/bash
切进nginx容器, 退出命令行,不要使用exit,因为exit会让容器停止。这里使用ctrl+D
使用专用的复制命令将配置文件复制到宿主机,然后在宿主机进行编辑
sudo docker cp mynginx:/etc/nginx/conf.d/default.conf ./default.conf
配置default.conf如下
location ~ \.php$ {
fastcgi_pass myphpfpm: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;
}
宿主机编辑完后,存入nginx容器中
sudo docker cp ./default.conf mynginx:/etc/nginx/conf.d/default.conf
重启nginx服务并退出容器
service nginx restart
由于php-fpm没安装pdo扩展,安装相应扩展,先进入php容器
docker exec -it myphpfpm /bin/bash
cd /usr/bin
安装扩展
docker-php-ext-install pdo_mysql
退出后重启并查看容器状态
docker ps
测试:
在www下新建index.php文件
<? echo php phpinfo();?>,保存退出,打开浏览器输入localhost:8080/index.php