1.生成MySQL容器
注:因为要将php链接到mysql,所以我们先生成mysql容器
为了方便快捷,并且只是学习使用,我们就使用官方的mysql镜像,首先将镜像源设置国内镜像源
# vi /etc/docker/daemon.json
|
|
{
|
|
“registry-mirrors”: [“https://registry.docker-cn.com”]
|
|
}
|
|
systemctl restart docker
|
拉取官方mysql镜像
# 默认最新版本
|
|
docker pull mysql
|
创建mysql容器
# 1.创建mysql文件目录
|
|
cd /docker-study/mysql
|
|
# 2. 创建mysql容器
|
|
docker run \
|
|
–name mysql \
|
|
-p 3308:3306 \
|
|
-e MYSQL_ROOT_PASSWORD=123456 \
|
|
-v “$PWD“/data:/var/lib/mysql \
|
|
-v “$PWD“/docker_study/dockerdocker-lnmp/mysql/conf:/etc/mysql/conf.d \
|
|
-d mysql
|
- –name 容器名字
- -p 映射端口
- -e 变量
- -v 关在目录
- -d 守护进程
docker ps
2.生成php容器
cd /docker-study/php
|
|
# 1.拉取官方镜像
|
|
docker pull php:7.2-fpm
|
|
# 2.创建php容器
|
|
docker run -d \
|
|
–name php \
|
|
-p 9001:9000 \
|
|
-v “$PWD”/www/:/var/www/html:ro \
|
|
–link mysql \
|
|
php:7.2-fpm
|
3.生成nginx容器
cd /docker-study/nginx
|
|
# 1.拉取官方镜像
|
|
docker pull nginx
|
|
# 2.创建nginx容器
|
|
docker run -d \
|
|
–name nginx \
|
|
-p 8096:80 \
|
|
-v “$PWD“/www:/home/www/ \
|
|
-v “$PWD“/www:/usr/share/nginx/html \
|
|
-v “$PWD“/nginx.conf:/etc/nginx/nginx.conf \
|
|
-v “$PWD“/logs:/var/log/nginx \
|
|
-v “$PWD“/conf.d:/etc/nginx/conf.d \
|
|
–link php \
|
|
nginx
|
注:这里有个坑,nginx 启动挂载目录报错
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused
因为这里自动将配置文件创建为目录了
解决方法
- 换一种方法不启动 -v “$PWD”/nginx.conf:/etc/nginx/nginx.conf \ 这个
启动之前先把刚刚已经启动的容器删除 docker rm -f nginx
然后记得删除掉/dcoker-study/nginx/nginx.conf这个目录docker run -d \–name nginx \-p 8096:80 \-v “$PWD“/www:/home/www/ \-v “$PWD“/www:/usr/share/nginx/html \-v “$PWD“/logs:/var/log/nginx \–link php \nginx
2.docker exec -it nginx /bin/bash (进入容器 获取文件)
3.cd /etc/nginx/ (这里主要获取配置文件路径的)
4.exit
5.然后进入cd /dcoker-study/nginx/ 里面,docker cp nginx:/etc/nginx/nginx.conf . 然后再次启动就好了
6.docker rm -f nginx,完后重新执行
docker run -d \
|
|
–name nginx \
|
|
-p 8096:80 \
|
|
-v “$PWD“/www:/home/www/ \
|
|
-v “$PWD“/www:/usr/share/nginx/html \
|
|
-v “$PWD“/nginx.conf:/etc/nginx/nginx.conf \
|
|
-v “$PWD“/logs:/var/log/nginx \
|
|
-v “$PWD“/conf.d:/etc/nginx/conf.d \
|
|
–link php \
|
|
nginx
|
没有报错,创建ngixn容器成功
4.配置nginx
vim /docker-study/nginx/nginx.conf
server {
|
|
#根据映射的端口确定
|
|
listen 80;
|
|
listen [::]:80;
|
|
server_name localhost;
|
|
root /docker-study/php/www/;
|
|
index index.php index.html index.htm;
|
|
location ~ \.php$ {
|
|
fastcgi_pass php:9000;
|
|
fastcgi_index index.php;
|
|
#此处 $fastcgi_script_name之前必须为/var/www/html
|
|
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
|
|
include fastcgi_params;
|
|
}
|
|
include /etc/nginx/default.d/*.conf;
|
|
location / {
|
|
}
|
|
error_page 404 /404.html;
|
|
location = /40x.html {
|
|
}
|
|
error_page 500 502 503 504 /50x.html;
|
|
location = /50x.html {
|
|
}
|
|
}
|
5.在/docker-study/php/www下面新建index.php,写入内容
cd /docker-study/php/www
touch index.php
<?php
|
|
phpinfo();
|
6.访问:ip:8096/index.php
好了,使用docker快速搭建lnmp环境成功
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)