docker搭建lnmp环境
Posted dylan.zhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker搭建lnmp环境相关的知识,希望对你有一定的参考价值。
下载docker
uname -r 查看内核版本
sudo yum update 更新yum包
sudo yum remove docker docker-common docker-selinux docker-engine 卸载旧版本(如果安装过旧版本,否则忽略)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 安装需要依赖yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 设置yum源
yum list docker-ce --showduplicates | sort -r 查看仓库中所有的docker版本
sudo yum install docker-ce #下载指定版本的docker
sudo systemctl start docker 设置开机启动
docker images 查看docker镜像列表
docker安装nginx
首先要创建需要的本地目录文件,方便后面做映射
cd /usr/local
mkdir nginx
cd nginx
mkdir conf conf.d logs
项目映射文件 /usr/local/www 注意nginx和php容器里面的html都需要映射到这个目录,否则配置nginx会出错
docker search nginx 搜索nginx版本
docker pull nginx 默认拉去官方最新的nginx镜像
docker run --name nginx -p 80:80 -d nginx 创建并允许nginx容器,绑定映射端口
docker ps -a 查看docker运行容器
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf 将容器内的nginx配置文件复制到本地
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf.d 将容器内的nginx配置文件复制到本地
docker stop nginx 停止nginx容器
docker rm nginx 删除容器
docker run -p 80:80 --name nginx -v /usr/local/www:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx -d nginx 创建nginx容器以及文件映射
说明: -p 端口映射 --name 容器别名 -d 运行容器 -v 文件映射
访问127.0.0.1 出现nginx欢迎界面
docker安装php
docker search php 搜索php官方镜像
docker pull php:7.4-fpm 拉去对应版本的php镜像
docker run -p 9000:9000 --name php74 -v /usr/local/www:/var/www/html -d php:7.4-fpm 创建php容器并允许
docker安装mysql
docker search mysql 搜索mysql镜像
docker pull mysql 拉取镜像
docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql 创建容器
docker exec -it mysql /bin/bash 进入mysql容器
mysql -uroot -p 进入mysql
GRANT ALL ON *.* TO 'root'@'%'; 授权
flush privileges; 刷新权限
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 更新加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 更新root用户密码
flush privileges; 刷新权限
配置nginx解析php
server {
listen 80;
server_name 127.0.0.1;
#access_log /var/log/nginx/host.access.log main;
# nginx容器内对应的路径
root /usr/share/nginx/html;
location / {
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \\.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \\.php$ {
# php容器里面对应的文件
root /var/www/html/;
# 用来指定php-fpm监听的地址
fastcgi_pass 127.0.0.1:9000;
# 设定访问根目录默认去找的文件
fastcgi_index index.php;
# 设置访问根目录时默认寻找的文件
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\\.ht {
# deny all;
#}
}
以上是关于docker搭建lnmp环境的主要内容,如果未能解决你的问题,请参考以下文章