Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。

Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低。

文章就不介绍如何去安装和使用docker了。不会的请大家自行谷歌/百度去学习下~

最新版的镜像地址,在我的阿里云仓库里面,文章末尾,可以直接使用命令docker pull获取。

先说下本人docker中部署lnmp环境使用的几个方法:

方法一:通过百度等方法,分别从一些镜像仓库拉取nginx、mysql、php镜像,然后挂在数据卷并映射端口。

附参考飞机票:https://learnku.com/articles/9200/centos-7-uses-docker-to-build-a-basic-lnmp-environment

但由于我想要一个统一的lnmp环境,所以放弃了这个方法。

方法二:通过Dockerfile,写一些命令,逐步安装各个app及扩展。但由于中途有一些报错,排查了很久,安装过程有些绕,最终放弃。贴出dockerfile代码,大家可以试用一下,如果有能力排除问题,也可以使用。

  1. # base image
  2. # 基础镜像
  3. FROM centos:latest
  4. # MAINTAINER编写者
  5. LABEL MAINTAINER mengyilingjian@outlook.com
  6. # put nginx-1.16.1.tar.gz into /usr/local and unpack nginx 来吧nginx 和PHP提前都放进基础镜像的/usr/local/src目录下,方便编译安装
  7. ADD nginx-1.16.1.tar.gz /usr/local
  8. ADD php-7.3.8.tar.gz /usr/local
  9. # running required command 安装Nginx的一系列乱七八糟的依赖包
  10. RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel bison libcurl-devel
  11. RUN yum install -y libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel
  12. RUN useradd -M -s /sbin/nologin nginx
  13. # change dir to /usr/local/nginx-1.16.1
  14. WORKDIR /usr/local/nginx-1.16.1
  15. # execute command to compile nginx
  16. RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install
  17. EXPOSE 80 443
  18. #先装个本地Mysql
  19. RUN yum install -y wget
  20. RUN wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
  21. RUN rpm -ivh mysql80-community-release-el7-3.noarch.rpm --force --nodeps
  22. RUN yum install -y mysql-server
  23. #截止此,开始安装php,宇宙惯例,开始安装一些编译的依赖包
  24. RUN yum -y install epel-release
  25. RUN yum -y install libmcrypt-devel
  26. RUN yum -y install libxml2 libxml2-devel openssl curl-devel libjpeg-devel libpng-devel freetype-devel
  27. WORKDIR /usr/local/php-7.3.8
  28. #编译 安装
  29. RUN ./configure --prefix=/usr/local/php7.3.8 --with-config-file-path=/usr/local/php7.3.8/etc --with-config-file-scan-dir=/usr/local/php7.3.8/etc/php.d --with-mcrypt=/usr/include --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache && make && make install \
  30. && cp /usr/local/php7.3.8/etc/php-fpm.conf.default /usr/local/php7.3.8/etc/php-fpm.conf \
  31. && cp /usr/local/php7.3.8/etc/php-fpm.d/www.conf.default /usr/local/php7.3.8/etc/php-fpm.d/www.conf \
  32. && sed -i '/;daemonize/a\daemonize = no' /usr/local/php7.3.8/etc/php-fpm.conf \
  33. && sed -i 's/127.3.8.1/0.0.0.0/g' /usr/local/php7.3.8/etc/php-fpm.d/www.conf \
  34. && echo "${TIME_ZOME}" > /etc/timezone \
  35. && ln -sf /usr/share/zoneinfo/${TIME_ZOME} /etc/localtime \
  36. && yum clean all \
  37. && yum -y remove gcc gcc-c++ make
  38. EXPOSE 9000
  39. CMD ["sbin/php-fpm","-c","etc/php-fpm.conf"]
  40. RUN cp php.ini-production /usr/local/php7.3.8/etc/php.ini

方法三:在centos中,通过lnmp一键安装包,进行安装。这个方法貌似可以成功,但是耗费时间会根据网络和服务器配置的高低,变得漫长而痛苦。由于本人服务器自己用,所以配置不高,耗费了接近十多个小时,中途没有报错。所以有点哭笑不得。最后还是放弃。

1.文章教程使用配置环境:

  1. [root@izwz91quxhnlk8xexo852xz ~]# docker --version
  2. Docker version 19.03.1, build 74b1e89
  3. [root@izwz91quxhnlk8xexo852xz ~]# df -hl
  4. Filesystem Size Used Avail Use% Mounted on
  5. /dev/vda1 40G 19G 19G 51% /
  6. devtmpfs 909M 0 909M 0% /dev
  7. tmpfs 920M 0 920M 0% /dev/shm
  8. tmpfs 920M 556K 919M 1% /run
  9. tmpfs 920M 0 920M 0% /sys/fs/cgroup
  10. tmpfs 184M 0 184M 0% /run/user/0
  11. overlay 40G 19G 19G 51% /var/lib/docker/overlay2/22a5b83dd224ee73588dcbc58c5d618e9d91398f57389ba3a3632aed7e853365/merged
  12. [root@izwz91quxhnlk8xexo852xz ~]# nginx -V
  13. nginx version: nginx/1.16.0
  14. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
  15. built with OpenSSL 1.1.1b 26 Feb 2019

2.lnmp环境搭建成功的详细信息:

php7:

  1. [root@9c73e764fc4b bin]# ./php --version
  2. PHP 7.3.8 (cli) (built: Aug 22 2019 09:34:04) ( NTS )
  3. Copyright (c) 1997-2018 The PHP Group
  4. Zend Engine v3.3.8, Copyright (c) 1998-2018 Zend Technologies
  5. with the ionCube PHP Loader + ionCube24 v10.3.7, Copyright (c) 2002-2019, by ionCube Ltd.
  6. with Zend OPcache v7.3.8, Copyright (c) 1999-2018, by Zend Technologies
  7. with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
  8. Segmentation fault (core dumped)
  9. [root@9c73e764fc4b bin]# ./php -m
  10. [PHP Modules]
  11. bcmath
  12. Core
  13. ctype
  14. curl
  15. date
  16. dom
  17. exif
  18. fileinfo
  19. filter
  20. ftp
  21. gd
  22. gettext
  23. hash
  24. iconv
  25. intl
  26. ionCube Loader
  27. json
  28. libxml
  29. mbstring
  30. memcache
  31. memcached
  32. mongodb
  33. mysqli
  34. mysqlnd
  35. openssl
  36. pcntl
  37. pcre
  38. PDO
  39. pdo_mysql
  40. pdo_sqlite
  41. phalcon
  42. Phar
  43. posix
  44. redis
  45. Reflection
  46. session
  47. shmop
  48. SimpleXML
  49. soap
  50. sockets
  51. sodium
  52. SPL
  53. sqlite3
  54. standard
  55. swoole
  56. sysvsem
  57. tokenizer
  58. xdebug
  59. xml
  60. xmlreader
  61. xmlrpc
  62. xmlwriter
  63. xsl
  64. yaf
  65. Zend OPcache
  66. zip
  67. zlib

php5.6:

  1. [root@9c73e764fc4b bin]# ./php --version
  2. PHP 5.6.40 (cli) (built: Aug 22 2019 10:06:15)
  3. Copyright (c) 1997-2016 The PHP Group
  4. Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
  5. with the ionCube PHP Loader + ionCube24 v10.3.7, Copyright (c) 2002-2019, by ionCube Ltd.
  6. with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies
  7. with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
  8. with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
  9. [root@9c73e764fc4b bin]# ./php -m
  10. [PHP Modules]
  11. bcmath
  12. Core
  13. ctype
  14. curl
  15. date
  16. dom
  17. ereg
  18. exif
  19. fileinfo
  20. filter
  21. ftp
  22. gd
  23. gettext
  24. hash
  25. iconv
  26. intl
  27. ionCube Loader
  28. json
  29. libxml
  30. mbstring
  31. mcrypt
  32. memcache
  33. memcached
  34. mhash
  35. mongodb
  36. mysql
  37. mysqli
  38. mysqlnd
  39. openssl
  40. pcntl
  41. pcre
  42. PDO
  43. pdo_mysql
  44. pdo_sqlite
  45. phalcon
  46. Phar
  47. posix
  48. redis
  49. Reflection
  50. session
  51. shmop
  52. SimpleXML
  53. soap
  54. sockets
  55. SPL
  56. sqlite3
  57. standard
  58. swoole
  59. sysvsem
  60. tokenizer
  61. xdebug
  62. xml
  63. xmlreader
  64. xmlrpc
  65. xmlwriter
  66. xsl
  67. Zend Guard Loader
  68. Zend OPcache
  69. zip
  70. zlib

mysql8.0:

  1. [root@9c73e764fc4b bin]# ./mysql --version
  2. ./mysql Ver 8.0.17 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)

nginx:

  1. [root@9c73e764fc4b sbin]# ./nginx -V
  2. nginx version: nginx/1.16.0
  3. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

3.宿主机中通过以下命令可拉取我的阿里云仓库里最新的的centos-lnmp镜像,欢迎大家下载使用。有问题可以加微信与我沟通:

registry.cn-shenzhen.aliyuncs.com/eric_zhou/public:lnmp-v2.0

  1. [root@izwz91quxhnlk8xexo852xz ~]# docker pull registry.cn-shenzhen.aliyuncs.com/eric_zhou/public:lnmp-v2.0
  2. [root@izwz91quxhnlk8xexo852xz ~]# docker exec -it [imageID] /bin/bash
  3. -----------------------------------------------------------------------------------------
  4. php mysql nginx 已经加入全局变量,需要执行以下命令方可生效:
  5. source /etc/profile

不懂地方可留言,或者进微信群内交流。

群二维码:

群二维码如果过期,请加我个人微信:mengyilingjian.

docker中基于centos镜像部署lnmp环境 php7.3 mysql8.0 最新版的更多相关文章

  1. 使用Docker构建基于centos7镜像的python环境

    Dcokerfile配置信息 ############################################## # 基于centos7构建python3运行环境 # 构建命令: 在Dock ...

  2. 基于CentOS系统部署EPICS环境

    1.虚拟机安装CentOS系统2.打开终端,以root账户登录3.进入/usr/local目录下,新建文件夹epics,并进入该文件夹4.在/usr/local/epics目录下,执行wget htt ...

  3. 【转载】Centos系统快速部署LNMP环境

    PHP语言在Linux系统上运行的时候,需要在Linux系统上部署相应的Nginx.MySQL.PHP等环境,只有将这些环境参数都设置好,PHP相关应用程序才可正常运行,部署环境的方法有很多种,可手动 ...

  4. 手动部署LNMP环境(CentOS 7)

    手动部署LNMP环境(CentOS 7) 一.修改 yum 源 [root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/e ...

  5. 手动编译部署LNMP环境(CentOS7.5+Nginx-1.18.0+MySQL-5.7.30+PHP-7.4.14)

    在平时运维工作中,经常需要用到LNMP应用框架.LNMP环境是指在Linux系统下,由Nginx + MySQL + PHP组成的网站服务器架构. 可参考前面的文章: 如何在CentOS 7上搭建LA ...

  6. Docker启动一个Centos镜像

    docker镜像的获取与使用 docker中使用centos7镜像 接着上文,我们下载完成一个Centos镜像之后,开始启动 #运行命令 docker run -d -i -t <imageID ...

  7. Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)

    Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建) 具体案例:局域网内有两台主机,一台Linux.一台Windows,现在需要配置一台Cacti监控服务器对这两台 ...

  8. 十九.部署LNMP环境、构建LNMP平台、地址重写

    proxy client web1 web2   1.部署LNMP环境 1.1 部署nginx(前面已部署过) 1.2 部署mariadb ]# yum -y install mariadb mari ...

  9. 高级运维(三):部署Lnmp环境、构建Lnmp平台、地址重写

    一.部署LNMP环境 目标: 安装部署Nginx.MariaDB.PHP环境 1> 安装部署Nginx.MariaDB.PHP.PHP-FPM: 2> 启动Nginx.MariaDB.FP ...

随机推荐

  1. Nodejs 包与 npm第三方模块安装和 package.json 以及 cnpm

    包与 NPM 1. 包 Nodejs 中除了它自己提供的核心模块外,可以自定义模块,也可以使用第三方的模块.Nodejs 中第三方模块由包组成,可以通过包来对一组具有相互依 赖关系的模块进行统一管理. ...

  2. DSCP 标

    DSCP差分服务代码点(Differentiated Services Code Point).它在每个数据包IP头部的服务类别TOS标识字节中,利用已使用的6比特和未使用的2比特,通过编码值来区分优 ...

  3. C++ vector使用实例

    C++ vector #include <iostream> #include <vector> #include <string> #include <al ...

  4. Docker 运行Kafka容器

    1. 启动Zookeeper docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper 2. 启动Kafka dock ...

  5. 开发日记:Windows进程守护工具

    近期,中心应用服务无故关闭.在检查系统和应用程序日志无果后采取了进程守护的方法.测试期内,脚本未出现系统资源占用过多的情况. 使用说明:1.进程守护.vbs  使用时需修改运行周期(10行).守护进程 ...

  6. nginx使用与配置入门指南

    这是一篇关于nginx使用与配置的入门指南,但不包括nginx的编译与安装.我假定你知晓如何安装nginx.对大多数Linux系统来说,nginx都已经存在于它们的软件包里,直接使用系统提供的软件管理 ...

  7. c#.net EF DB FIRST 添加新的模型

    双击.edmx ,右键-从数据库更新模型,在“添加”里选择新表.

  8. Kubernetes 原理架构介绍(一)

    目录 一.Kubernetes 是什么 二.Kubernetes 设计架构 三.Kubernetes的核心技术概念和API对象 Cluster Master Node Pod Controller D ...

  9. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)——应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

  10. Ubuntu16.0.4安装OpenCV3.4.2

    (1)到官网下载opencv3.4.2,链接:https://opencv.org/releases.html (2)下载opencv_contrib,链接:https://github.com/op ...