Docker入门(6)--- 使用docker快速搭建lnmp环境
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"/etc:/usr/local/etc/php \
-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环境成功
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »