创建带php运行环境的CentOS Docker镜像

一、拉取带httpd服务的centos镜像到本地
命令:
  docker pull freedoms1988/centos7-httpd2.4-sshd
解释:
  docker pull【拉取命令】 freedoms1988/centos7-httpd2.4-sshd【远程镜像名】
二、启动带httpd的centos容器
命令:
  docker run -d -p 10022:22 -p 8080:80 -v /Users/freedoms/work/Docker/httpd/www:/usr/local/apache2/htdocs freedoms1988/centos7-httpd2.4-sshd /usr/local/sbin/httpd.sh
解释:
  docker run【运行命令】 -d【后台运行参数】 -p 10022:22【端口映射:宿主机10022到docker22】 -p 8080:80【端口映射:宿主机8080到docker80】 -v /Users/freedoms/work/Docker/httpd/www:/usr/local/apache2/htdocs【目录映射:宿主机:docker】 freedoms1988/centos7-httpd2.4-sshd【镜像名称】 /usr/local/sbin/httpd.sh【运行镜像时运行脚本】
三、登录容器
命令:
  ssh root@localhost -p 10022
解释:
  ssh root【用户】@localhost【主机】 -p 10022【端口号】
四、下载并解压php
命令:
  1、cd /usr/local/src 
  2、wget [http://hk2.php.net/get/php-7.2.1.tar.gz/from/this/mirror](http://hk2.php.net/get/php-7.2.1.tar.gz/from/this/mirror)
  3、mv mirror php-7.2.1.tar.gz
  4、tar -zxvf php-7.2.1.tar.gz
解释:
  1、进入源码暂存目录
  2、下载php7.2.1
  3、修改名称
  4、解压
五、下载php编译依赖
命令:
  1、cd php-7.2.1
  2、yum install -y epel-release make perl perl-devel libxml2-devel openssl-devel bzip2-devel libjpeg libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
解释:
  1、进入php7.2.1目录
  2、yum install【安装命令】 -y【自动确认参数】epel-release make perl perl-devel libxml2-devel openssl-devel bzip2-devel libjpeg libjpeg-devel libpng-devel freetype-devel libmcrypt-devel【软件名称】
六、下载并解压mysql用作php编译
命令:
  1、wget [http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz](http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz)
  2、tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
  3、mv ./mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
解释:
  1、下载mysql5.6
  2、解压
  3、拷贝mysql目录到安装路径下
七、php编译
命令:
  1、cd php-7.2.1  
  2、./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6
  3、make && make install
解释:
  1、进入php7.2.1路径
  2、配置编译参数,安装路径
  3、编译并安装
八、测试编译结果
  命令:
    ll /usr/local/apache2/modules/libphp7.so
  结果:
    应打印libphp7.so保存目录
九、配置httpd
操作:
  1、vim /usr/local/apache2/conf/httpd.conf
  2、AddType application/x-gzip .gz .tgz下添加AddType application/x-httpd-php .php
  3、<IfModule dir_module> DirectoryIndex index.html </IfModule>修改为<IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule>
  4、检查ServerName www.example.com:80应改为ServerName localhost:80
  5、/usr/local/apache2/bin/apachectl -k graceful 使配置生效
十、测试
操作:
  1、在宿主机 /Users/freedoms/work/Docker/httpd/www中建立测试项目文件夹并编辑phpinfo文件
  2、在宿主机浏览器中访问http://localhost:8080/{项目文件夹名称}/test.php
  3、浏览器应显示phpinfo信息
十一、将镜像打包后,提交到DockerHub

向DockerHub私有库中提交镜像

十二、Dockerfile

GitHubDockerHub

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容