window 10系统 在docker里搭建lnmp环境
Posted mr.杰瑞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window 10系统 在docker里搭建lnmp环境相关的知识,希望对你有一定的参考价值。
首先说一下子,这里的lnmp的l不是linux 是laravel框架 哈哈哈
- 安装centos下载centos7
这篇文章是下载的图形界面
在图形界面使用 ctrl+alt+F2切换到dos界面
dos界面 ctrl+alt+F2切换回图形界面
进入dos界面 查看当前的默认界面形式:
systemctl get-default
结果出现:
图形化界面
graphical.target
命令行界面
multi-user.target
设置系统默认的界面形式(需要进入到root模式)
设置为图形化界面:
systemctl set-default graphical.target
设置为命令行界面:
systemctl set-default multi-user.target
如果出现 interactive authentication required 说明没有用root角色运行
切换root角色
su
重新运行。查看当前默认开启的是图形还是命令行
重启系统
reboot
基础设施ok
- 安装docker
yum安装
yum install -y docker
查看是否安装完成
docker version
报错来了,这个报错是因为etc/docker 下面没有daemon.json文件,那我们创建一个
编辑daemon.json文件
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
重启docker
systemctl restart docker.service
这下没有报错了
附带一下docker 命令
systemctl start docker # 启动docker
systemctl stop docker # 停止docker
systemctl status docker # 查看docker状态
systemctl restart docker # 重新启动docker
docker search nginx命令查找 Docker Hub 上的 nginx 镜像
- docker搭建lnmp环境
1.下载php
docker pull php:7.4-fpm
docker run -p 9000:9000 -d --name php -v /docker/www:/docker/www --privileged=true php:7.4-fpm
-p 9000:9000 :将容器的9000端口映射到主机的9000端口
-d 后台运行(守护进程)
--name php:将容器命名为php
-v 将主机中当前目录下的www挂载到容器的www目录
查看php-fpm服务ip
docker inspect php | grep "IPAddress"
2.下载nginx
创建nginx配置
cd /docker/nginx
touch default.conf
vim default.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
root /docker/www/blog/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /docker/www/blog/public;
}
location ~ \\.php$ {
root /docker/www/blog/public;
fastcgi_pass 172.17.0.2:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```bash
docker run -p 80:80 -d --name nginx2 -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /docker/www:/docker/www --privileged=true nginx
-p 80:80:将容器的80端口映射到主机的80端口
-d 后台运行(守护进程)
–name nginx:将容器命名为nginx
-v 将主机中当前目录下的www挂载到容器的www目录
又来报错,没事继续解决
问题是,没有开启转发,网桥配置完后,需要开启转发,不然容器启动后,就会没有网络,配置/etc/sysctl.conf,添加net.ipv4.ip_forward=1
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
ps: 我中间改了一下nginx配置
重新加载配置
docker-composer restart nginx-lsb #这个要下载好几个包 我懒我用下面这种
docker restart nginx2 #重启nginx (nginx2是我起的别名 )
嗯嗯 这里是没有权限
cd /docker/www
chmod -R 777 lmrs-2008
很nice
继续安装mysql
docker pull mysql
vim /etc/my.cnf
添加配置文件
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
secure_file_priv=/var/lib/mysql
port = 3306
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 100G
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 4K
read_buffer_size = 768K
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
tmp_table_size = 32M
default_authentication_plugin = mysql_native_password
lower_case_table_names = 1
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
binlog_expire_logs_seconds = 600000
slow_query_log=1
slow-query-log-file=/usr/local/mysql/data/mysql-slow.log
long_query_time=3
early-plugin-load = ""
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads = 1
innodb_write_io_threads = 1
[mysqldump]
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
开启mysql
docker run -p 3306:3306 -d --name mysql -v /etc/my.cnf:/etc/mysql/my.cnf --privileged=true -e MYSQL_ROOT_PASSWORD=root mysql
-p 3306:3306 :将容器的3306端口映射到主机的3306端口
-d 后台运行(守护进程)
–name mysql:将容器命名为mysql
-v 将主机中的mysql配置挂载到容器的/etc/mysql/my.cnf
进入容器内部,查看是否能运行mysql
docker exec -it mysql bash
mysql -uroot -p
很耐思
用navicat连接一下子
未完待续 之后更新一下 swoole怎么加速laravel框架
以上是关于window 10系统 在docker里搭建lnmp环境的主要内容,如果未能解决你的问题,请参考以下文章