Docker - Windows上搭建LNMP环境 - 学习/实践

20 篇文章 1 订阅
8 篇文章 0 订阅

1.应用场景

主要用于学习使用docker搭建开发环境. 学习容器化技术.

以及快速搭建开发环境, 同时保持团队之间开发/测试环境相同~~~~

2.学习/操作

1.文档阅读

Docker - 搭建LNMP环境 - 学习/实践

2.整理输出

2.1 拉取镜像

docker pull nginx:latest
docker pull php:7.4-fpm
docker pull mysql:8.0
docker pull redis:latest

2.2 配置准备

nginx

mkdir etc
docker run --name tmp-nginx -d nginx
docker cp tmp-nginx:/etc/nginx E:\workspace\etc\nginx
docker rm -f tmp-nginx

可测试nginx容器

mkdir www
docker run --name run-nginx -d -p 80:80 -v E:\workspace\www:/usr/share/nginx/html:ro nginx

docker rm -f run-nginx

php-fpm

docker run --name tmp-php-fpm -d php:7.4-fpm
docker cp tmp-php-fpm:/usr/local/etc E:\workspace\etc\php
docker rm -f tmp-php-fpm

mysql

mkdir mysql && cd mysql
mkdir conf && mkdir logs && mkdir data

redis

TBD

2.3 实例化容器

顺序:[因为前后有依赖【link】关系]

mysql-->redis-->php-fpm-->nginx

mysql

docker run ^
--name run-mysql-80 ^
-p 33060:3306 ^
-e MYSQL_ROOT_PASSWORD=root ^
-v E:\workspace\mysql\conf:/etc/mysql/conf.d ^
-v E:\workspace\mysql\logs:/logs ^
-v E:\workspace\mysql\data:/var/lib/mysql ^
-d mysql:8.0

redis

docker run ^
--name run-redis-latest ^
-p 6379:6379 ^
-d redis:latest

php-fpm

docker run ^
--name run-php-74-fpm ^
-v E:\workspace\www:/var/www/html ^
-v E:\workspace\etc\php:/usr/local/etc ^
-v E:\workspace\log\php:/var/log/php ^
-d php:7.4-fpm

nginx

docker run ^
--name run-nginx-latest ^
-p 8080:80 ^
-v E:\workspace\www:/usr/share/nginx/html ^
-v E:\workspace\etc\nginx:/etc/nginx ^
-v E:\workspace\log\nginx:/var/log/nginx ^
--link run-php-74-fpm:php-fpm-container ^
--link run-redis-latest:redis ^
--link run-mysql-80:mysql ^
-d nginx:latest

过程截图

出现nginx实例化,启动失败的原因就是:

配置阶段,拷贝容器文件到本机失败

symlink \usr\lib\nginx\modules E:\workspace\etc\nginx\modules: A required privilege is not held by the client.

从报错信息看,是因为权限的问题。

解决办法

见下面

但是应该还是有其他方法

优化

TBD

后续补充

...

3.问题/补充

1. 在git bash中,执行docker run --name run-nginx -d -p 80:80 -v $PWD/www:/usr/share/nginx/html:ro nginx一直出现问题, 不能正确挂载目录, 最后还是手动通过desktop-docker做的配置

方式二: 在cmd中, 执行如下命令:

docker run --name run-nginx -d -p 80:80 -v E:\workspace\www:/usr/share/nginx/html:ro nginx

由此,建议,统一使用绝对路径

4.参考

参见文档阅读列表

后续补充

...

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值