2017-12-14(docker安装javaweb环境汇总)

来源:互联网 发布:游鹿网络有什么游戏 编辑:程序博客网 时间:2024/06/08 14:37

更多docker资料请参考:https://doc.yonyoucloud.com/doc/docker_practice/index.html

docker 的安装

推荐安装在linux系统上,如果主机是windows还需提前安装虚拟机(如VMware)

支持docker运行的linux系统版本:

  • Ubuntu 12.4及更新版本

  • Centos6.5 (64-bit)

  • Centos7 (64-bit)及更新版本

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本

这里以Centos 7为例

使用指令查看系统内核,Docker 要求 CentOS 系统的内核版本高于 3.10

# username -r

之后的内容考虑到权限问题,都使用root用户输入指令

使用yum安装docker

# yum -y install docker

安装完成后启动服务

# service docker start

测试运行helloworld

# docker run hello-world

由于本地并没与这个镜像,docker会去远程仓库下载,下载完成后使用指令查看安装的镜像

docker images

现在尝试运行这个镜像

使用指令

docker run hell-world

注意:在选择运行镜像时有两种方式,方式一:使用镜像的 ID;方式二:使用镜像名称:标签名,如果在运行run指令时没有给定标签名,那么docker会选择标签名为latest

推荐使用ID的方式启动镜像,因为输入的名称写错,docker在本地没有找到对应镜像,还会去远程仓库查找并下载

docker 中三大基本概念

镜像(Image)

Docker 镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。

Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

可以简单理解成是一个操作系统,需要什么运行环境就下载什么镜像,也支持自定义镜像

容器(Container)

Docker 利用容器来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

这里有一个很重要的关系,容器就是镜像运行的实例

只有镜像运行之后生成的容器才能真正运行在其中的应用程序

仓库(Repository)

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 Docker Pool 等,可以提供大陆用户更稳定快速的访问。

当然,用户也可以在本地网络内创建一个私有仓库。

当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

*注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。

这里仓库可以想象成github

常用命令

# docker images --查看已经安装的镜像

# docker ps       --查看正在运行的容器# docker ps -a    --所有的容器,包括停止了

启动一个已经停止的容器或者停止一个已经启动的容器

# docker start 容器名或ID# docker stop 容器名或ID

远程搜索镜像

# docker search Ubuntu 

下载一个远程镜像

# docker pull docker.io/ubuntu   --即下载上面搜索出来的第一个镜像

删除容器

# docker rm 8e4645d2a3ed  --删除容器,容器首先要停止才能被删除

删除镜像

# docker rmi docker.io/ubuntu

构建运行JAVA-WEB项目的镜像

思路:首先基于Centos基本镜像,然后在运行这个镜像,会生成对应容器,进入容器中安装JDK和tomcat,然后把安装了软件之后的容器生成一个新的镜像

下载Centos

通过search 和pull指令能够完成对Centos基本镜像的下载

在运行Centos镜像之前,先准备好jdk和tomcat的压缩包,我准备在/home/lllllhc/software目录下

启动Centos镜像

使用指令

# docker run -i -t -v /home/lllllhc/software/:/mnt/software/ 3fa822599e10 /bin/bash

解释命令:

docker run <相关参数> <镜像 ID> <初始命令>

其中,相关参数包括:
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

使用这种方式启动的镜像,主机的/home/lllllhc/software目录挂载到centos中/mnt/software目录,并且以命令行的形式进入了容器内部,可以发现提示符变化了

首先去/mnt/software 目录下查看是否有对应的压缩包


安装JDK

首先创建安装目录,然后解压压缩包

# cd /usr  # mkdir java  # cd java  # mkdir jdk  # cd /mnt/software/  # tar zxvf jdk-8u151-linux-x64.gz -C /usr/java/jdk 

配置JDK环境变量,输入

# vi /etc/profile 

在文件的最后添加

#set java environment   export JAVA_HOME=/usr/java/jdk/jdk1.8.0_151   export JRE_HOME=/usr/java/jdk/jdk1.8.0_151/jre   export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH   export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

保存之后要是文件生效,输入

source /etc/profile 

测试JDK是否生效
java -version

如果能够打印对应jdk版本就说明配置成功


安装tomcat

# cd /usr/java  # mkdir tomcat  # tar zxvf apache-tomcat-7.0.82.tar.gz -C /usr/java/tomcat

配置环境
进入到上面的tomcat的bin文件夹下:
打开文件,使用下面指令

vi setclasspath.sh

gedit setclasspath.sh

添加如下内容:

export JAVA_HOME=/usr/java/jdk/jdk1.8.0_151   export JRE_HOME=/usr/java/jdk/jdk1.8.0_151/jre  

保存即可。进入tomcat的bin目录,启动tomcat

# ./startup.sh

如果打印出了tomcat started 说明tomcat启动成功


配置配置容器启动环境变量

1、设置环境变量

首先,编辑.bashrc文件

# vi ~/.bashrc 

然后,在该文件末尾添加如下配置

export JAVA_HOME=/usr/java/jdk/jdk1.8.0_65   export JRE_HOME=/usr/java/jdk/jdk1.8.0_65/jre   export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH   export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

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

# source ~/.bashrc 

2、编写运行脚本

我们需要编写一个运行脚本,当启动容器时,运行该脚本,启动 Tomcat,具体过程如下:
首先,创建运行脚本:

# vi /root/run.sh  

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

#!/bin/bash  source ~/.bashrc  sh /usr/java/tomcat/apache-tomcat-7.0.68/bin/catalina.sh run

注意:这里必须先加载环境变量,然后使用 Tomcat 的运行脚本来启动 Tomcat 服务。
最后,为运行脚本添加执行权限:

# chmod u+x /root/run.sh 

3、退出容器

当以上步骤全部完成后,可使用exit或ctrl+d命令,退出容器。
随后,可使用如下命令查看正在运行的容器:

# docker ps

此时,您应该看不到任何正在运行的程序,因为刚才已经使用exit命令退出的容器,此时容器处于停止状态,可使用如下命令查看所有容器:

# docker ps -a

这个容器就是基于Centos,已经配置好jdk和tomcat

接下来把这个容器生成一个镜像

# docker commit 8e4645d2a3ed lhc_javaweb:0.1

该容器的 ID 是“8e4645d2a3ed”,所创建的镜像名是“lhc_javaweb:0.1”,随后可使用镜像来启动 Java Web 容器。

启动web容器

有必要首先使用docker images命令,查看当前所有的镜像:
使用指令启动容器

# docker run -d -p 58080:8080 --name javaweb lhc_javaweb:0.1 /root/run.sh

指令解释:

-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
–name:表示容器名称,用一个有意义的名称命名即可。

我们可通过docker ps命令来查看当前正在运行的容器,如果能够查询到容器在运行就说明容器启动成功。

说明:这里容器名称不同是因为测试的容器和上文提到的自己创建容器命名不同而已

启动浏览器,访问本地58080端口,出现下面界面表示java-web环境镜像已经成功生成并启动:

原创粉丝点击