1、拉取一个centos最新的image
docker image pull centos
默认会拉取latest的centos
2、运行这个image,生成一个容器实例,并进入
docker run -it centos:latest /bin/bash
/bin/bash : 容器运行之后用/bin/bash 这个shell来进行操作
参数 -i : – --interactive 即使没有连接也会保持STDIN打开状态,如果你想输入任何命令
的话,你需要这个
参数 -t : – --tty 分配一个伪TTY(各种类型的终端设备),一个连接用户的“终端”与标准输入和标准输出的伪终端
-d : 后台运行容器,并返回容器ID;
3、一键安装lnmp
wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp
4、编写启动命令
touch /bin/startup.sh vi /bin/startup.sh
写入以下命令:
#!/bin/sh /etc/init.d/mysql start /etc/init.d/php-fpm start /etc/init.d/nginx start #dead loop while ((1)) do sleep 1h done
5、清除下载软件包、cache等,减少镜像大小
yum clean all
6、退出容器实例
exit
7、基于当前容器生成新image镜像
docker commit [CONTAINER_ID] centos:lnmp
可以看到生成了一个新的镜像,但是size很大
8、基于新创建的镜像生成一个容器实例
docker run -u root -d -p 8888:80 -v /var/www/html:/var/www/html centos:lnmp /bin/startup.sh
9、重命名一个image镜像的tag
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)