0

0

如何使用Docker搭建Java环境

王林

王林

发布时间:2023-05-11 13:22:06

|

3678人浏览过

|

来源于亿速云

转载

docker是干什么的

docker 是一个基于linux容器(lxc-linux container)的高级容器引擎,基于go语言开发,源代码托管在 github 上, 遵从apache2.0协议开源。docker的目标是实现轻量级的操作系统虚拟化解决方案。

学习docker首先要了解几个概念:

镜像—docker的镜像和常见的系统iso镜像类似,包含了应用程序的信息;

容器—容器相当于一个可以运行起来的虚拟机,应用程序运行在容器中,docker运行在“docker”上;

仓库—仓库是存放镜像的地方,有类似git的版本控制,同样分为公开仓库(public)和私有仓库(private)两种形式;

docker支持大部分的linux发行版,通过使用docker容器,就可以在不同的操作系统,不同的机器上运行自己的应用,不用关心硬件、运行环境之类的配置,应用程序的迁移变得非常简单。

 docker和传统虚拟化技术的对比

相比传统虚拟机技术,docker资源占用少,启动更快,很大的方便了项目的部署和运维。

docker是在操作系统层面上实现虚拟化,复用本地主机的操作系统,传统方式是在硬件的基础上,虚拟出多个操作系统,然后在系统上部署相关的应用。

这张图片很形象的说明了docker和vm之类的传统虚拟化技术的区别:

如何使用Docker搭建Java环境 vs如何使用Docker搭建Java环境

准备

首先需要准备一个centos的操作系统,虚拟机也可以。具体配置要求如下:

1.必须是64位操作系统
2.建议内核在3.8以上

安装docker

只需要通过以下命令即可安装docker软件

yum -y install docker-io

可使用以下命令,查看docker是否安装成功:

docker version

如果输出看docker的版本号,则说明安装成功了,可通过以下命令启动docker服务:

service docker start

如果service命令启动不了用下面的

systemctl start docker.service

做法

就像安装软件一样,我们首先需要有一张刻录了该软件的光盘,如果使用的是虚拟光驱,那么就需要准备镜像的文件,通过它来安装软件。在docker的世界里,也是有镜像的文件的,已经安装我们所需的操作系统,我们一般称为docker镜像

下载镜像

docker search 

使用docker pull imagename(镜像名)来下载镜像

下载完成后使用以下命令查看本地所有的镜像:

docker images

当下载完成后,你应该会看到:

repository        tag         image id      created       virtual size
docker.io/centos   centos7       f753707788c5    12 days ago     127.1 mb

如果看到以上输出,说明你可以使用 “docker.cn/docker/centos”这个镜像了,或将其称为仓库(repository),该镜像有一个名为”centos7”的标签(tag),此外还有一个名为”25c5298b1a36”的镜像id(这个是随机生成,所以每个人看到的都不一样)

启动容器

容器是在镜像的基础上来运行的,一旦容器启动了,我们就可以登录到容器中,安装自己所需的软件或应用程序。 

使用进入已经运行的docker

docker attach dabfb413d8cf[容器id]

使用以下命令即可启动容器:

docker run -i -t -v /root/software/:/mnt/software/ --privileged=true 2a392a47afc5

docker run

其中相关参数包括:

-i:表示以交互模式运行容器

-t:表示容器启动后会进入其命令行

-v:表示需要将本地哪个目录挂载到容器中,格式-v:

假设我们的所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下。

这一切做好后你就可以为这个容器安装软件了。

docker 传送文件命令

docker cp more.log e7de404c00bd:/tmp/ 

1f8787b81bcd

安装java开发环境

我们需要安装的有jdk1.7,、tomcat7、nginx,安装包去官网下载就行了

1.安装jdk

首先,解压jdk程序包:

tar -zxf jdk-7u71-linux-x64.tar.gz –c

如果是rpm包

情感家园企业站5.0 多语言多风格版
情感家园企业站5.0 多语言多风格版

一套面向小企业用户的企业网站程序!功能简单,操作简单。实现了小企业网站的很多实用的功能,如文章新闻模块、图片展示、产品列表以及小型的下载功能,还同时增加了邮件订阅等相应模块。公告,友情链接等这些通用功能本程序也同样都集成了!同时本程序引入了模块功能,只要在系统默认模板上创建模块,可以在任何一个语言环境(或任意风格)的适当位置进行使用!

下载
rpm –ivh jdk-7u71-linux-x64.tar.gz

然后重命名文件夹

mv jdk1.7.0_71/ jdk/

最后配置环境变量

vi ~/.bashrc

在文件末尾添加如下配置:

export java_home=/opt/jdk

export path=$path:$java_home

·用文本编辑器打开/etc/profile 

 ·在profile文件末尾加入:

export java_home=/usr/share/jdk1.6.0_14 
 export path=$java_home/bin:$path 
 export classpath=.:$java_home/lib/dt.jar:$java_home/lib/tools.jar

最后使用source命令,让环境变量生效:

source ~/.bashrc

source /etc/profile

1.安装tomcat

也是一样,解压tomcat程序包:

tar –zxf apache-tomcat-7.0.55.tar.gz

然后重命名tomcat目录:

mv apache-tomcat-7.0.55/ tomcat/

编写一个运行脚本,当启动容器时,运行该脚本,启动tomcat,具体过程如下:

vi /root/run.sh

然后,编辑脚本内容如下:

#!/bin/bash

source ~/.bashrc

sh /opt/tomcat/bin/catalina.sh run

注意:这里必须先加载环境,然后使用tomcat的运行脚本来运行tomcat

最后,为运行脚本添加执行权限:

chmod u+x /root/run.sh

1.安装nginx

先去官网下载源码包注意要是gz的

   下载地址

下载完后,解压安装包:

tar -zxvf nginx-1.11.5.tar.gz

然后再配置安装变量,打开解压后的目录-执行命令

cd nginx-1.11.5

配置安装环境

./configure  --prefix=/usr/local/servers/nginx  “/usr/local/servers/nginx”是安装路径

有可能会出现./configure: error: c compiler cc is not found

这时需要运行命令更新一下gcc

yum install gcc gcc-c++ ncurses-devel perl

yum -y install pcre-devel

yum -y install zlib-devel

yum -y install autoconf libtool make

在解压目录执行:

make

切换到root用户执行安装命令

make install

创建软链

ln –s /usr/local/servers/nginx/sbin/nginx /usr/local/bin/nginx

启动nginx服务

nginx

再用 ps  -ef|grep nginx查看是否启动成功

提交docker镜像

首先退出你刚才配置好的docker镜像

exit

然后使用以下命令可以看到刚才退出的docker镜像

docker ps –a

再使用以下命令,根据某个”容器id”来创建一个新的”镜像”:

docker commit 57c312bbaad1 javaweb:0.1

该容器id是”57c312bbaad1”,所创建的镜像名是”javaweb”

注意:”57c312bbaad1” 这个id是使用 docker ps 命令来查看的

提交了新的镜像你可以把这个镜像储存tar包

docker  –o ~/javaweb.tar javaweb

docker  save –o  保存的目录  镜像名

启动容器

先用 docker  images看看当前所有的镜像

启动最新创建的镜像

docker run -d -p 80:80 --name javaweb javaweb:0.1 /root/run.sh

-d:表示以”守护模式”执行/root/run.sh脚本,此时tomcat控制台不会出现在输出终端上。

-p:表示宿主机与容器的端口映射,此时将容器内部的80端口映射为宿主机的 80端口,这样就向外界暴露了80端口,可通过docker网桥来访问容器内部的80端口了

--name:表示容器名称,用一个有意义的名称命名即可

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

Docker 17 中文开发手册
Docker 17 中文开发手册

共0课时 | 0人学习

极客学院Docker视频教程
极客学院Docker视频教程

共33课时 | 17.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号