1.先拉取nginx,mysql,php的镜像
我安装的是docker pull mysql mysql 5.7
2.安装MySQL的容器:
docker run --name mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456-d mysql:5.7
MYSQL_ROOT_PASSWORD指定数据库密码
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口 -符号最好不要复制,手动敲-
a. docker exec -it 容器的id/bin/bash
b. mysql -u root -p
输入数据库密码 123456
密码正确链接成功
然后 ,容器中,查看mysql的版本
mysql> status;
--------------
2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)
授权
1 |
|
刷新权限
1 |
|
此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则
3,更改加密规则
1 |
|
4,更新root用户密码
1 |
|
刷新权限
1 |
|
在navicat 连接数据库遇到好几坑
4.我的阿里服务器,是轻应用服务器
4.1 还有登陆阿里管理平台 ,打开防火墙管理要把mysql 这个开起来
4.2最后一个大坑是,navicat必须是12版本以上的才能ssh才能连。。。可能我的是破解版的缘故,直到我换了最新版本的navicat才可以
PHP
需要安装php 的运行环境 拉取php的镜像 php-fpm
这里php链接的ip是mysql容器里的ip地址
nginx配置
我的nginx全部的配置
创建的nginx容器
docker run --name nginx -d -p 80:80 -v /docker/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
# 使用-v挂载目录,冒号前面部分是主机要挂载文件路径,冒号后面部分是挂载到容器的路径
# -v /home:/home表示将宿主机的home目录下的所有文件挂载到容器的home目录下
location ~.*(js|images|css|png|gif|jpg|mp3|ogg)$ {
root /usr/share/nginx/html;
}
静态资源映射在 /usr/share/nginx/html该目录下 ,这个目录是容器的目录
/docker/www这个目录是宿主机的目录,我们都是在这个目录下上传的文件的,把宿主机的目录映射到容器里去 /usr/share/nginx/html
完整的nginx配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
client_max_body_size 20m;
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
access_log off; #关闭访问日志
charset utf-8;
#tcp_nopush on;
#keepalive_timeout 0;
#开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpg image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
server {
listen 80;
server_name 47.88.84.237;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~.*(js|images|css|png|gif|jpg|mp3|ogg)$ {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass 172.17.0.5:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
break;
}
}
}