首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[Docker]基于centos镜像完成容器创建、基于容器创建镜像、上传及基于Dockerfile完成镜像制作

[Docker]基于centos镜像完成容器创建、基于容器创建镜像、上传及基于Dockerfile完成镜像制作

作者头像
master336
发布2026-06-15 19:30:35
发布2026-06-15 19:30:35
1230
举报

前言

本笔记记录从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/

操作过程

1. 拉取centos镜像

https://hub.docker.com/_/centos

代码语言:javascript
复制
docker pull centos:centos7

2. 基于centos镜像创建容器

代码语言:javascript
复制
docker run -it -d --name centos-java -p 9001-9100:8001-8100 centos:centos7
在这里插入图片描述
在这里插入图片描述

3. 添加自定义内容

这里以添加wget、zip、unzip、jdk、tomcat为自定义内容

代码语言:javascript
复制
# 复制安装文件到容器内部
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/(注意端口映射)

在这里插入图片描述
在这里插入图片描述

4. 将容器提交并推送

代码语言:javascript
复制
# 建议先讲容器停止
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
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. Dockerfile编译自己的镜像

Dockerfile内容

代码语言:javascript
复制
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使用说明可得到答案)

代码语言:javascript
复制
docker build -t master336/docker-build:v1.0 .
在这里插入图片描述
在这里插入图片描述

6. 使用自己build的镜像创建容器

代码语言:javascript
复制
# 创建镜像
docker run -it -d --name docker-demo -p 9999:8080 master336/docker-build:v1.0
在这里插入图片描述
在这里插入图片描述

日志查看:

代码语言:javascript
复制
docker logs -f --tail 200 2990fa3795807242081c3861302f92f75a4a5a3447de3fa93ed18cae02434229
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

总结

  1. dockerfile中 CMD 命令执行完毕及容器结束,所以要注意不能使用bin/startup !
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 基础环境
  • 操作过程
    • 1. 拉取centos镜像
    • 2. 基于centos镜像创建容器
    • 3. 添加自定义内容
    • 4. 将容器提交并推送
    • 5. Dockerfile编译自己的镜像
    • 6. 使用自己build的镜像创建容器
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档