
本笔记记录从hub.docker.com拉去centos7镜像到基于dockerfile创建自己镜像的过程。 如需获取本文中的镜像,请访问https://hub.docker.com/ 拉取 涉及命令包括: pull、run、cp、commit、tag、push、build、exec、logs等 参考资料菜鸟教程-dockerfile 菜鸟教程-docker命令 cenos镜像:https://hub.docker.com/_/centos?tab=tags
Docker版本:19.03.5 jdk:1.8 tomacat:8.5 镜像(源centos7):centos:centos7 镜像(jdk+tomcat+wget+zip/unzip): master336/centos-tomcat:v1.0 镜像仓库:https://hub.docker.com/
https://hub.docker.com/_/centos
docker pull centos:centos7docker run -it -d --name centos-java -p 9001-9100:8001-8100 centos:centos7
这里以添加wget、zip、unzip、jdk、tomcat为自定义内容
# 复制安装文件到容器内部
docker cp ~/apache-tomcat-8.5.60.zip 354bf2821d0f:/app/
docker cp ~/wget-1.14-18.el7_6.1.x86_64.rpm 354bf2821d0f:/app/
docker cp ~/zip-3.0-11.el7.x86_64.rpm 354bf2821d0f:/app/
docker cp ~/unzip-6.0-21.el7.x86_64.rpm 354bf2821d0f:/app/
docker cp ~/jdk-8u271-linux-x64.rpm 354bf2821d0f:/app/
# 进入容器内部
docker exec -it 354bf2821d0f bash
# 切换到软件安装目录
cd /app
# 安装自定义软件
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
rpm -ivh zip-3.0-11.el7.x86_64.rpm unzip-6.0-21.el7.x86_64.rpm
rpm -ivh jdk-8u271-linux-x64.rpm
# 解压tomcat
unzip apache-tomcat-8.5.60.zip
# 启动tomcat
cd apache-tomcat-8.5.60/
cd bin/
chmod +x *.sh
./startup.sh
# 删除多余安装包
cd /app
rm -rf *.rpm

启动tomcat后访问:http://localhost:9080/(注意端口映射)

# 建议先讲容器停止
docker stop 354bf2821d0f
# 提交容器
docker commit -a "master336@163.com" -m "tomcat运行环境" 354bf2821d0f centos-tomcat:v1.0
# 给镜像打标签(目的是用于明确推送仓库地址)
docker tag centos-tomcat:v1.0 master336/centos-tomcat:v1.0
# 推送容器
docker push master336/centos-tomcat


Dockerfile内容
FROM centos-tomcat:v1.0
MAINTAINER master336@163.com
ENV userhome=aaa userid=bbb
COPY demo.war /app/apache-tomcat-8.5.60/webapps/
WORKDIR /app/
EXPOSE 8080
ENTRYPOINT ["/app/apache-tomcat-8.5.60/bin/catalina.sh","run"," && tail -fn 100 /app/apache-tomcat-8.5.60/logs/catalina.out"]注意demo.war为部署包,需防止跟dockerfile同一级目录或其下级目录(查看copy使用说明可得到答案)
docker build -t master336/docker-build:v1.0 .
# 创建镜像
docker run -it -d --name docker-demo -p 9999:8080 master336/docker-build:v1.0
日志查看:
docker logs -f --tail 200 2990fa3795807242081c3861302f92f75a4a5a3447de3fa93ed18cae02434229
启动tomcat后访问:http://localhost:9999/demo(注意端口映射)
