20170626|创建自定义Docker镜像(Apache+PHP)

【注意】最后更新于 June 26, 2017,文中内容可能已过时,请谨慎使用。

下载Centos镜像作为基础模板

docker pull centos

生成临时容器,镜像安装

docker run -i -t centos /bin/bash

安装apache+php

由于docker启动时需要指定脚本运行,脚本执行完成后容器会退出,而且容器中不支持使用systemctl命令来让httpd服务自动启动,所以需要编写特殊的启动脚本。

#!/bin/bash

apachectl -k start #启动apache

while [ 1 ]  #死循环让脚本一直执行

do

sleep 1000

done

登陆腾讯云的镜像仓库

docker login -u ** -p ** url

给镜像打tag

docker tag id ccr.ccs.tencentyun.com/*\*/**:id

把镜像上传到仓库

docker push ccr.ccs.tencentyun.com/*\*/**:id

指定ip和端口运行容器

docker run -d –privileged=true -p 192.168.100.50:8082:80 -v /root/docker/by:/var/www/html php_apache /start.sh

-d 后台运行

–privileged=true 使用该参数,container内的root拥有真正的root权限。

否则,container内的root只是外部的一个普通用户权限。

-p 192.168.100.50:8082:80 指定端口

-v /root/docker/by:/var/www/html  映射主机目录

/start.sh 启动脚本

容器关闭后重新运行

docker ps -a  查看所有容器(包括已经关闭的)

docker start id 启动指定的容器

docker exec id /start.sh 运行容器中的启动脚本

批量删除容器

docker rm $(docker ps -qa)

docker ps -qa | xargs -n 1 docker rm

也可以看看