docker搭建LNMP开发环境

1. 安装docker,推荐win10专业版系统,win7系统安装使用docker
2. 从官方仓库下载镜像(推荐下载以alpine为基础的镜像)
  1. docker pull mysql:5.7
  2. docker pull php:5.6.38
  3. docker pull nginx:1.15.5
3. 初始化容器
  1. docker run -dit -p 3306:3306 -e MYSQL_ROOT_PASSWORD=docker123 --name mysql57 mysql:5.7
  2. docker run -dit -v E:/WWW:/home/wwwroot -p 9000:9000 --name php56 php:5.6.38-fpm
  3. docker run -dit -p 80:80 -v E:/WWW:/home/wwwroot --name nginx15 nginx:1.15.5
4. 为php容器安装扩展
  1. 首先进入容器:docker exec -it php5.6 /bin/bash
  2. 安装相关扩展:docker-php-ext-install mysqli (mysql,gd,curl,...)
  3. 安装镜像中非自带的扩展如(redis,memcached...),去下载扩展源码拷贝到/usr/src/php/ext/目录(如果目录不存在,执行docker-php-source extract)下并重命名为redis,docker-php-ext-install redis 安装扩展,重启容器。
5. 常用命令
  1. docker-machine ssh default 进入docker默认主机(win7)
  2. docker run -d 让容器在后台运行 -p 添加主机到容器的端口映射 -v 添加目录映射,即主机上的/var/nginx/www/html和容器中/var/www/html目录是同步的 –name 容器的名字 –link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务。
  3. docker exec -it 容器ID或容器名 /bin/bash 进入容器
  4. docker stop/start/restart/kill 容器ID或容器名
  5. docker inspect 容器ID或容器名 | grep IPAddress 获得容器IP
6. 常见问题
  1. gd库缺少pnd,jpeg,webp...
  • debian容器(执行以下两条命令):
    • apt install -y libwebp-dev libjpeg62-turbo-dev libpng-dev libfreetype6-dev
    • docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
  • alpine容器(执行以下两条命令):
    • apk add --no-cache freetype-dev libjpeg-turbo-dev libpng-dev libwebp-dev
    • docker-php-ext-configure gd --with-freetype-dir=/usr --with-png-dir=/usr --with-jpeg-dir=/usr --with-webp-dir=/usr
    • 最后执行docker-php-ext-install gd,重启容器。
  1. 容器中的时间不是北京时间
  • cd /etc/目录下查看是否存在localtime,如存在删除,执行:
    • ln -s /usr/share/zoneinfo/Asia/Shanghai localtime
    • echo "Asia/Shanghai" > /etc/timezone,重启容器。
  • 如果/usr/share/zoneinfo/Asia/Shanghai不存在,安装装tzdata。

转载于:https://my.oschina.net/CodeLivestock/blog/2254762

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值