Docker-web项目部署

一、发布步骤

  • Dockerfile编写
  • 制作镜像
  • 提交Dockerhub仓库
  • 创建容器
  • 配置映射端口
  • 部署应用包

二、Dockerfile编写

# 基于哪个基础镜像
FROM centos:6.8
# 构建者的信息
MAINTAINER 1441559xxx@qq.com
# 拷贝所需要的工具包
COPY apache-tomcat-9.0.33 /usr/local/
COPY jdk1.8.0_241 /usr/local
# 配置java运行环境
ENV JAVA_HOME /usr/local/jdk1.8.0_241
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin 
# 容器启动时命令设置
ENTRYPOINT /usr/local/apache-tomcat-9.0.33/bin/startup.sh && tail -f /usr/local/apache-tomcat-9.0.33/logs/catalina.out

三、镜像构建

# 构建镜像
docker build -t  centos_tomcat:jdk8 .
# 查看构建镜像是否存在
docker images

四、镜像推送

# 登录dockerhub
docker login
# 修改制作好的镜像名字
 docker tag centos_tomcat:jdk8 wxktest/cos_tomcat:jdk8
# 推送镜像
docker push wxktest/cos_tomcat:jdk8
# 退出登录
docker logout

五、创建容器

# 两种方式创建
# 1.仅创建容器
docker create -ti --name [容器名称] [镜像] 

# 2.创建容器并启动容器
docker run -ti --name [容器名称] [镜像] -p [容器分配端口]:[宿主机映射端口]

六、配置映射端口

  • 方式一:

    使用docker run创建并运行容器,可以通过-p指定端口映射;但是经常会遇到忘记设置端口映射或设置错了需要修改。
    
  • 方式二:

    通过修改容器配置文件的方式来设置容器映射端口
    容器的配置文件地址:
      /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
    注意:其中的hash_of_the_container是docker镜像的hash值,可以通过docker ps或者docker inspect containername 查看
    
//修改端口映射信息,vim 容器的配置文件
"PortBindings":{
"8080/tcp":[
"HostIp":"",
"HostPort":"8089"
]
}
// 其中8080/tcp对应的是容器内部的8080端口,tomcat访问默认端口是8080
// HostPort对应的是映射到宿主机的端口8089。
修改文件: /var/lib/docker/containers/[hash_of_the_container]/config.v2.json
添加配置项:"ExposedPorts":{"80/tcp":{}} , 将这个配置项添加到 "Tty": true, 
修改完成后重启docker服务:systemctl restart docker

七、部署应用包

# 要将所要发布的应用包部署到docker中tomcat的webapp目录

# 停掉docker:tomcat-web容器
docker stop tomcat-web
# 将提前准备好的应用包拷贝到docker容器中
cd /home/test_web/test_demo
# 拷贝到容器中指定目录
docker cp test.war tomcat-web:/usr/local/tomcat/webapps/
# 启动docker:tomcat-web容器
docker start 3466 -ai

测试小白爱测试!!!

10 声望
3 粉丝
0 条评论
推荐阅读
数据结构与算法
一、算法1.1、算法基础概念:算法是独⽴存在的⼀种解决问题的⽅法和思想算法的特性:输入:算法具有0个或多个输⼊输出: 算法⾄少有1个或多个输出有穷性: 算法在有限的步骤之后会⾃动结束⽽不会⽆限循环,并且每⼀...

测试菜鸟阅读 344

Aliyun-使用Docker方式安装Jenkins
之前自己在阿里云ECS上面安装了Jekins(安装jenkins的文章),最近因为服务器中了挖矿木马于是准备重新安装一下,但是想到每次安装jenkins都要手动安装jdk、maven、docker、kubectl,感觉好麻烦,于是使用官方推荐...

Awbeci2阅读 2.1k

Win10 安装Docker以及Jenkins(超级详细篇)
安装Docker下载地址:[链接] ,按照它的指引教程,无脑下一步即可。安装成功后电脑会重启。打开docker桌面端,会显示进入链接,下载WSL 安装包进行无脑安装即可。安装 Linux 内核更新包 (重启电脑)重启 Docker ...

九旬3阅读 1.1k

Redis集群容器化安装
主从复制在数据库中很常见,一般用来做读写分离,Redis中也是如此。要求只有1个Master(主节点),可以有N个slaver(从节点),而且Slaver也可以有自己的Slaver,由于这种主从的关系决定他们是在配置阶段就要指定...

KerryWu2阅读 2.3k

前端切图仔入门Docker,三分钟上线自己的博客平台
依稀记得2022年趁某平台优惠买了台云服务器,周未准备安装MySQL数据库,两天时间卡在MySQL环境配置上,实在是折磨一气之下把服务器给退了。

凌览2阅读 562

封面图
【从零开始】Docker Desktop:听说你小子要玩我
由于本狗近期项目紧任务重,高强度的搬砖导致摸鱼时间下降。在上线项目时,看到运维大神一系列骚操作,docker+k8s的知识如过眼云烟,忘得干净的很。所以想重新恶补一下docker知识,但又碍于服务器资源有限,只能...

JavaDog程序狗2阅读 320评论 2

封面图
一个非常轻量的静态资源服务器
一个非常轻量的静态资源服务器这个静态服务器的主要目的就是为了部署静态资源,也只具有静态访问功能,不适用于接口开发或者资源重定向。项目地址:docker ikrong/mini-http目前支持的功能如下支持静态资源访问单...

ikrong阅读 2.2k评论 2

封面图

测试小白爱测试!!!

10 声望
3 粉丝
宣传栏