centos 安装jdk_CentOS7 从零开始搭建一个jdk+tomcat的docker环境

搭建的基础

  • 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
4b008a20de17f870794a910825696397.png

这里安装最新的稳定版

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
211276dd026f3f22f1efb62f482a1f46.png

拉取docker镜像

docker pull 镜像名

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

c72d605f275c0364f42ba372d3ba0214.png

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

docker images
3a36e629ce1daf6b1af0559da80caba3.png
通过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 
8020078b6523c9584c11b0e5911894e7.png

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_231COPY apache-tomcat-8.5.50 /home/tomcat/apache-tomcat-8.5.50#设置环境变量ENV JAVA_HOME=/home/jdk/jdk1.8.0_231ENV JRE_HOME=$JAVA_HOME/jreENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATHENV 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的镜像

cb806098041fa86ac061e047ac827ad7.png

开放服务器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启动

246683a8761471db2338f22eb686d823.png

进入docker

docker exec -it ecs_docker /bin/bash

测试下java版本

f72be303d911791e921ce3dac37993a4.png

启动tomcat浏览器访问下

8d582c0784d55f06b2eecd5f821ddec9.png
bff0aba90bec32ae96b9fa352b268f48.png

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

docker  save  -o  tar包的名字  镜像名
bfce66f1b823414677bdb30cd18b4814.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值