Docker 搭建 lnmp 环境
一、docker 安装MySQL
-
远程拉取镜像
docker pull mysql[:tag]
例如:
docker pull mysql
拉取最新版本;docker pull mysql:5.6
拉取5.6版本 -
查看拉下来的MySQL镜像
docker images
-
运行并启动一个容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 \ -v /data/mysql/data:/var/lib/mysql:rw \ -v /data/mysql/log:/var/log/mysql:rw \ -v /etc/localtime:/etc/localtime:ro \ --name mysql8 mysql:latest
参数说明:
-d : 让容器在后台运行
-p : 添加主机到容器的端口映射
-e : 设置环境变量。此处是设置root用户的初始密码,这个必须设置
-v : 添加目录映射。即宿主机的/data/mysql/data
与容器中的/var/lib/mysql
是同步的 。mysql/data
是数据库文件存放的地方,必须要挂载到容器外,否则容器重启一切数据消失。
--name : 容器的名字
rw : 读写
ro : 只读 -
查看创建的容器
docker ps
二、docker 安装php-fpm
- 远程拉取镜像
docker pull php:7.3-fpm
- 查看拉下来的 php 镜像
- 创建 php-fpm 容器
docker run -d -p 9000:9000 \
-v /data/nginx/html:/var/www/html \
--name php73fpm \
--link mysql8:mysql \
php:7.3-fpm
参数说明:
--link :--link <name or id>:alias
与另外一个容器建立起联系 ,此处是建立与mysql容器的联系
-
查看创建的容器
docker ps
-
在容器里安装扩展模块
docker exec -it php73fpm /bin/bash
进入php-fpm容器docker-php-ext-install mysqli
安装mysqli扩展
-
查看扩展模块是否安装成功
php -m
三、docker 安装 nginx
-
远程拉取nginx镜像
docker pull nginx
-
从容器中将nginx配置文件导出到宿主机上
docker cp nginx80:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx80:/etc/nginx/conf.d/default.conf /data/nginx/conf.d/default.conf
说明:因为要从容器中导出配置文件,所以可以先创建一个nginx的容器。
例如:docker -d -p 80:80 --name nginx80 nginx:latest
注意: 配置文件导出后,记得删除刚创建的容器docker rm -f nginx80
-
修改配置文件
vim /data/nginx/conf.d/default.conf
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { root /var/www/html; //php-fpm容器,映射的目录地址 fastcgi_pass php73:9000; // 这里的php73,是创建nginx容器时,--link 选项中链接php容器的别名 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- 创建并运行nginx容器
docker run -d -p 80:80 \ -v /data/nginx/html:/usr/share/nginx/html \ -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf.d:/etc/nginx/conf.d \ -v /data/nginx/logs:/var/log/nginx \ --link php73fpm:php73 \ --name nginx80 nginx:latest
- 查看启动的容器
docker ps
本作品采用《CC 协议》,转载必须注明作者和本文链接
发的这是啥???划水吗?
@huanbird 这会正在写,前面是看了下格式。 :smiley:
@冷无缺 哈哈 快写啊 学习学习
@huanbird 我也是刚学习,一边看文档实现,一边记录下笔记。 :smile:
这啥 :joy:
@sison1234 还请指教