Docker安装Lnmp环境

1.安装nginx

#1.查找镜像
$ docker search nginx

#2拉取官方镜像
$ docker pull nginx

#3.创建并运行容器,绑定映射端口(该条命令到挂载nginx的目录下运行)
$ docker run --name nginx -p 80:80  -v  /var/www/html/:/usr/share/nginx/html -v $PWD/conf.d:/etc/nginx/conf.d -v $PWD/log:/var/log/nginx -v $PWD/ssl:/etc/nginx/ssl -d nginx

      --name 这里是别名,使用docker ps 会最后显示names

      -p  80:80    第一个80是服务器的端口,第二个80是docker容器端口,

      -v  项目目录挂载
      -v  配置文件目录挂载(其中有一个default.conf 文件,使用挂载这个文件需要手动创建)
      -v  日志文件挂载
      -v  ssl证书目录挂载

      -d 要运行的容器名称 这里是nginx

注:所有的挂载操作只为在宿主机上就可以操作容器内部的文件,无需进入容器内部

防火墙配置docker

   $ firewall-cmd --permanent --zone=trusted --change-interface=docker0
   $ firewall-cmd --reload

2.安装php

#1.查找镜像
$ docker search php

#2.拉取官方镜像(根据自己的需要安装版本)
$ docker pull phpdockerio/php72-fpm

#3.现在需要查看nginx 默认运行的路径  进入挂载nginx的配置目录/mnt/nginx/conf.d   查看默认访问路径
$ cat /mnt/nginx/conf.d/default.conf
image.png
#4.创建并运行php容器
$  docker run -p 9000:9000 --name phpfpm72 -v /var/www/html/:/usr/share/nginx/html/ -d phpdockerio/php72-fpm

      --name 这里是别名,使用docker ps 会最后显示names

      -p  80:80    第一个9000 是服务器的端口,第二个9000 是docker容器端口,

      -v  将宿主机的目录挂载到容器中 :前为宿主机路径 后为容器路径 (该操作方便添加项目,无需进入容器添加)
      
      -d 要运行的容器名称 这里是phpfpm72

#5.进入挂载目录, 宿主机/var/www/html,并创建一个php文件

#6.访问php 文件了,如果直接访问就会是404 
#6.1 获取到phpfpm 这个容器的ip
$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' phpfpm72
19fa6014939e8ee6c95d285f7377f72.png
#6.2将172.18.0.3,这个ip配置到宿主机/mnt/nginx/conf.d/default.conf 
$ vim default.conf
f434a68333dcfbd74b3486690d4975f.png
# 加入以下的代码 可以访问php文件
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   172.17.0.3:9000;
        fastcgi_index  index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }
 注:想域名访问容器中的项目,需nginx反向代理到域名/index2.php

#6.3重启nginx,即可访问index2.php
$ docker restart nginx

3.安装mysql

#1.查找镜像
$ docker search mysql

#2.拉去镜像
$ docker pull mysql:5.7

#3.创建并运行mysql容器
$ docker run -p 3306:3306 --name mysql57 -v $PWD/etc:/etc/mysql -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql


  -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

  -v  $PWD/etc:/etc/mysql:将主机当前目录下的 /etc 挂载到容器的/etc/mysql。

     注:宿主机中不存在则自动创建,容器/etc/mysql 下所有文件需要拷贝到 宿主机$PWD/etc/ 
        需先创建$ docker run -p 3306:3306 --name mysql57 -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 cp 容器/etc/mysql/*文件,然后删除容器,最后挂载目录运行容器

  -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

  -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

  -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

注意:navicat for mysql连接mysql发现报错

1.出现2003错误

- 阿里云后台端口
- 防火墙端口

2.出现1045错误

#1.进入mysql容器
docker exec -it 62349aa31687 /bin/bash

#2.进入mysql
mysql -uroot -p*****

#3.授权
mysql> GRANT ALL ON *.* TO 'root'@'%';

#4.刷新权限
mysql> flush privileges;

#5.更新加密规则
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

#6.更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

#7.刷新权限
mysql> flush privileges;

#8.更新root密码
mysql> update user set host = '%' where user = 'root';

#9.刷新权限
mysql> flush privileges;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容