基于上一节apache2安装完整后,我们这次安装php7.2 mysql,并且生成新的镜像
安装前准备
#进入镜像
docker run -ti userver:1.0 /bin/bash
#安装的时候可能会报程序错误(需要以下命令来解决)
apt-get install software-properties-common python-software-properties
#如果安装php7.2等版本,可能在默认镜像库找不到,必须得切换到ppa:ondrej/php镜像
add-apt-repository ppa:ondrej/php && sudo apt-get update
安装mysql
apt-get install mysql-server
apt-get install mysql-client
apt-get install libmysqlclient-dev
apt-get install php7.2-mysql
# 如果最后这个命令报错,请安装完php7.2后再次安装它
安装php7.2
apt-get install php7.2 libapache2-mod-php7.2
# 默认安装php7.2 会自动安装跟他相关的扩展
安装php7.2-dev 开发包
apt-get install php7.2-dev
生成新的镜像
这是不要退出运行的镜像,新建终端窗口,docker ps
查看当前运行容器的id
docker ps
# 查询到container_id
生成新的镜像
docker commit -m "userver1.1 apache-mysql-php7.2" -a "1186969412@qq.com" container_id userver:1.1
#-m:提交信息说明 -a:作者
# 以上信息代表提交的镜像名称为userver tag为1.1 注意每次新镜像增加版本号
# 提交成功后 通过 docker images 可以查看到生成的镜像
退出运行的容器
在之前进入的镜像操作系统中,执行exit,则会退出镜像
exit
启动刚才生成的镜像
启动时候附带-p参数映射服务端口,允许外部访问,并且进入镜像
docker run -p 8989:80 -it userver:1.1 /bin/bash
这时候访问 ip:8989 什么也没有,因为apache还没启动
启动apache
service apache start
这时候已经能正常访问apache自带页面了
创建hello world
在镜像userver /var/www/html 目录下创建 t.php
apt-get install vim
# 默认系统 中可能没有带vim,需要自己安装
touch t.php
vim t.php
<?php
echo "hello world!";
保存退出后 页面访问t.php :hello world!
网友评论