百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

CentOS7 从零开始搭建一个jdk+tomcat的docker环境

qiyuwang 2024-11-03 16:30 8 浏览 0 评论

搭建的基础

  • Linux: CentOS-7-x86_64-DVD-1810.iso
  • Docker: docker-ce-18.03.1.ce
  • Java: jdk-8u231-linux-x64.tar.gz
  • Tomcat: apache-tomcat-8.5.50.tar.gz

安装Docker

要搭建一个docker环境,必须要在服务器上先安装docker,首先我们进行docker的安装

Docker 要求 CentOS 系统的内核版本高于 3.10,首先需要查看一下自己的linux内核是否高于3.1,满足要求在进行下面的操作

uname -r

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

配置镜像源,国外镜像一般很难访问,建议配置阿里云镜像

中央镜像

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

阿里镜像

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看下仓库中有哪些镜像,选择自己需要的镜像版本

yum list docker-ce --showduplicates

这里安装最新的稳定版

yum install docker-ce-18.03.1.ce

安装好后查看下docker运行状态

systemctl status docker

如果没有启动docker,启动一下

systemctl start docker

也可以设置为docker开机自动启动

systemctl enable docker

拉取Docker官方centos镜像

查询 centos 相关的镜像

docker search centos


拉取docker镜像

docker pull 镜像名

因为我们是手工构建自己的docker CentOS镜像,这里我们拉取一个centos就可以了


查看下一下我们下载好的image

docker images

通过Dockerfile 构建镜像

  • docker commit命令(这里发布的镜像没有记录过程)
  • docker build命令和Dockerfile文件(更为强大、灵活和常用,可以清晰的看到怎么构建docker的步骤)

jdk和Tomcat就不通yum命令安装,因为实际项目中进程有对应的版本,这里我们上传我们已经下载好了的版本到服务器上,首先在服务器上指定的目录创建dockerfile文件夹,把jdk和Tomcat上传到这个文件夹

# cd /home/
# mkdir dockerFile

解压两个文件

# tar -zxvf apache-tomcat-8.5.50.tar.gz 
# tar -zxvf jdk-8u231-linux-x64.tar.gz 

在目录下创建Dockerfile文件,然后vim书写

touch Dockerfile 


Dockerfile 一些基本语法

  • FROM : 指定基础镜像,并且必须是第一条指令
  • MAINTAINER : 指定作者
  • RUN : 运行指定的命令
  • ADD : 复制命令,把文件复制到镜像中,ADD会对压缩文件(tar, gzip, bzip2, etc)做提取和解压操作
  • COPY : 将主机的文件复制到镜像内,如果目的位置不存在,Docker会自动创建所有需要的目录结构,但是它只是单纯的复制,并不会去做文件提取和解压工作
  • ENV : 设置环境变量
  • EXPOSE : 功能为暴漏容器运行时的监听端口给外部
  • CMD : 指定容器启动时运行的命令
  • ENTRYPOINT : 容器启动时执行的命令
  • WORKDIR : 在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
    注意:CMD的命令会被 docker run 的命令覆盖而ENTRYPOINT不会

Dockerfile 脚本

#指定操作的镜像
FROM centos
# 维护者信息
MAINTAINER wangzhh

# 执行命令:创建jdk存放目录 mkdir -p 创建多级目录
RUN mkdir -p /home/jdk
# 执行命令:创建tomcat存放目录 mkdir -p 创建多级目录
RUN mkdir -p /home/tomcat

#将宿主机的jdk和tomcat拷贝到镜像文件上面创建的目录下,这里注意是相对目录,DockerFile的相对文件的路径,我这里放置的是同级
COPY jdk1.8.0_231 /home/jdk/jdk1.8.0_231
COPY apache-tomcat-8.5.50 /home/tomcat/apache-tomcat-8.5.50

#设置环境变量
ENV JAVA_HOME=/home/jdk/jdk1.8.0_231
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH

#暴露8080端口
EXPOSE 8080

执行Dockerfile构建Docker镜像

docker build -t wangzhh/jdk_tomcat:20200309 . 

-t 设置tag名称, 命名规则registry/image:tag(若不添加版本号,默认latest). 表示使用当前目录下的Dockerfile文件,注意语句后面有一个点

如下,我们就基于centos的基础镜像构建了一个java+tomcat的镜像


开放服务器8080端口

# firewall-cmd --zone=public --add-port=8080/tcp --permanent
# systemctl restart firewalld.service
# firewall-cmd --reload

加载镜像测试一下

docker run -d -it -p 8080:8080 --name ecs_docker wangzhh/jdk_tomcat:20200309

如果上面构建的时候没有加:tag版本号 就是:20200309可以docker run -d -it -p 8080:8080 --name ecs_docker wangzhh/jdk_tomcat启动


进入docker

docker exec -it ecs_docker /bin/bash

测试下java版本



启动tomcat浏览器访问下




到这里搭建一个jdk+tomcat的images就结束了,我们也可以打包成tar,让其他人直接使用

docker  save  -o  tar包的名字  镜像名

相关推荐

# 安装打开 ubuntu-22.04.3-LTS 报错 解决方案

#安装打开ubuntu-22.04.3-LTS报错解决方案WslRegisterDistributionfailedwitherror:0x800701bcError:0x80070...

利用阿里云镜像在ubuntu上安装Docker

简介:...

如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本

UbuntuKylin系统使用一段时间后,有新的版本发布,如何将现有的UbuntuKylin系统升级到最新版本?可以通过下面的方法进行升级。1.先查看相关的UbuntuKylin系统版本情况。使...

Ubuntu 16.10内部代号确认为Yakkety Yak

在正式宣布Ubuntu16.04LTS(XenialXerus)的当天,Canonical创始人MarkShuttleworth还非常开心的在个人微博上宣布Ubuntu下个版本16.10的内...

如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)

在Windows11的WSL(WindowsSubsystemforLinux)上安装Ubuntu非常简单。以下是详细的步骤:---...

Win11学院:如何在Windows 11上使用WSL安装Ubuntu

IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...

如何查看Linux的IP地址(如何查看Linux的ip地址)

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。...

怎么看电脑系统?(怎么看电脑系统配置)

要查看电脑的操作系统信息,可以按照以下步骤操作,根据不同的操作系统选择对应的方法:一、Windows系统通过系统属性查看右键点击桌面上的“此电脑”(或“我的电脑”)图标,选择“属性”。在打开的...

如何查询 Linux 内核版本?这些命令一定要会!

Linux内核是操作系统的核心,负责管理硬件资源、调度进程、处理系统调用等关键任务。不同的内核版本可能支持不同的硬件特性、提供新的功能,或者修复了已知的安全漏洞。以下是查询内核版本的几个常见场景:...

深度剖析:Linux下查看系统版本与CPU架构

在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。接...

504 错误代码解析与应对策略(504错误咋解决)

在互联网的使用过程中,用户偶尔会遭遇各种错误提示,其中504错误代码是较为常见的一种。504错误并非意味着网站被屏蔽,它实际上是指服务器在规定时间内未能从上游服务器获取响应,专业术语称为“Ga...

猎聘APP和官网崩了?回应:正对部分职位整改,临时域名可登录

10月12日,有网友反映猎聘网无法打开,猎聘APP无法登录。截至10月14日,仍有网友不断向猎聘官方微博下反映该情况,而猎聘官方微博未发布相关情况说明,只是在微博内对反映该情况的用户进行回复,“抱歉,...

域名解析的原理是什么?域名解析的流程是怎样的?

域名解析是网站正常运行的关键因素,因此网站管理者了解域名解析的原理和流程对于做好域名管理、解决常见解析问题,保障网站的正常运转十分必要。那么域名解析的原理是什么?域名解析的流程是怎样的?接下来,中科三...

Linux无法解析域名的解决办法(linux 不能解析域名)

如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名。  此时,需要手动修改配置文件:  /etc/resolv.conf  将域名解析服务器手动添加到配置文件中  该文件是DNS域名解...

域名劫持是什么?(域名劫持是什么)

域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。说的直白些,域名劫持,就是把互...

取消回复欢迎 发表评论: