centos + docker部署web java项目

简介: 1,系统准备 CentOS 具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: [root@VM_200_249_centos ~]# uname -r 3.10.0-327.36.3.el7.x86_64 对于 CentOS 6.5 而言,内核版本默认是 2.6。

1,系统准备

CentOS 具体要求如下:

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

通过以下命令查看您的 CentOS 内核:

[root@VM_200_249_centos ~]# uname -r
3.10.0-327.36.3.el7.x86_64

对于 CentOS 6.5 而言,内核版本默认是 2.6。首先,可通过以下命令安装最新内核:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum -y --enablerepo=elrepo-kernel install kernel-lt

随后,编辑以下配置文件:

vi /etc/grub.conf

将default=1修改为default=0。
最后,通过reboot或shutdown now命令重启操作系统。
重启后如果不出意外的话,再次查看内核,您的 CentOS 内核将会显示为 3.10。

2,安装Docker

只需通过以下命令即可安装 Docker 软件:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
yum -y install docker-io

可通过以下命令启动 Docker 服务:

service docker start
chkconfig docker on # 设置开机启动

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

[root@VM_200_249_centos ~]# docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64

若输出了 Docker 的版本号,则说明安装成功,我们下面就可以开始使用 Docker 了。

3, 安装镜像

Docker 官网 提供了所有的镜像下载地址
直接pull下来(https://hub.docker.com/r/nimmis/java-centos/)

docker pull nimmis/java-centos

可以通过对应的标签选择不同的jdk版本,例如"docker pull nimmis/java-centos:openjdk-7-jdk"

  • latest - currently Oracle Java version 8 JRE
  • openjdk-7-jdk - OpenJDK Java version 7 JDK
  • openjdk-7-jre - OpenJDK Java version 7 JRE
  • openjdk-7-jre-headless - OpenJDK Java version 7 JRE headless
  • openjdk-8-jdk - OpenJDK Java version 8 JDK
  • openjdk-8-jre - OpenJDK Java version 8 JRE
  • openjdk-8-jre-headless - OpenJDK Java version 8 JRE headless
  • oracle-7-jre - Oracle Java version 7 JRE
  • oracle-7-jdk - Oracle Java version 7 JDK
  • oracle-8-jre - Oracle Java version 8 JRE
  • oracle-8-jdk - Oracle Java version 8 JDK

镜像加速器

docker官网的镜像下载非常慢,国内提供了Docker镜像的下载点,如阿里、网易和DaoCloud。以阿里云为例:
需要先注册阿里云账号,进入:

https://cr.console.aliyun.com/#/accelerator

选择左侧“加速器”,找到你的专属加速器地址


img_dc8b46970fff62f0a1c9a206ed6a64d4.png

在centos下修改/etc/docker/daemon.json文件,添加:

{
    "registry-mirrors": ["https://yxz1pr3x.mirror.aliyuncs.com"]
}

设置后能获得每秒1兆的下载速度。

最后,使用以下命令查看本地所有的镜像:

[root@VM_200_249_centos ~]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
dockerxman/docker-centos     latest              4c89ecb22b17        2 minutes ago       395.6 MB
daocloud.io/library/centos   latest              67591570dd29        10 weeks ago        191.8 MB

可以看到,系统中有2个docker镜像,“dockerxman/docker-centos”,也可以
称其为仓库(Repository),镜像的标签(Tag)为lastest,此外还有镜像ID(IMAGE ID),大小有395兆。

4,启动容器

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

docker run -i -t -v /mydata/data:/mnt/software --restart=always 67591570dd29 /bin/bash

命令解释:

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

其中,相关参数包括:

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

初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可。
需要说明的是,不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,例如:dockerxman/docker-centos:latest。

查看所有创建的容器

docker ps -a

查看正在运行的容器

[root@VM_200_249_centos ~]# docker ps
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS              PORTS                     NAMES
a197e23e0ddb        asy:0.1   "/root/run.sh"      24 hours ago        Up 24 hours         0.0.0.0:58080->8080/tcp   javaweb

启动容器

docker start <CONTAINER ID>

停止容器

docker stop <CONTAINER ID>

重新进入已创建的容器

docker attach <CONTAINER ID>

docker exec -it <CONTAINER ID> /bin/bash

http://blog.csdn.net/u010397369/article/details/41045251

删除容器

docker rm <CONTAINER ID>

删除镜像

docker rmi <IMAGE ID>

注:需要先把镜像生成的容器全部删除才能删掉镜像。

5,安装软件

由于我们选择的镜像是包含JDK的,所以我们只需要安装tomcat。
tomcat我放在服务器上,用wget下载到容器中。

wget http://kekefund.com/soft/apache-tomcat-7.0.63.tar.gz

将tomcat放到/opt目录下,先移到到/opt目录,然后解压

cd /opt
tar -zxf /mnt/software/apache-tomcat-7.0.63.tar.gz -C .

重命名

mv apache-tomcat-7.0.63/ tomcat/

6,运行脚本

创建运行脚本:vi /root/run.sh

#!/bin/bash
source ~/.bashrc
sh /opt/tomcat/bin/catalina.sh run

为运行脚本添加执行权限

chmod u+x /root/run.sh

7, 创建 Java Web 镜像

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

docker commit d50f5048e212 chenbb/javaweb:0.1

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

8, 启动 Java Web 容器

通过docker images查看所有镜像

[root@VM_200_249_centos ~]# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
chenbb/javaweb               0.1                 99e35759d5ed        24 hours ago        700 MB
dockerxman/docker-centos     latest              4c89ecb22b17        26 hours ago        395.6 MB
daocloud.io/library/centos   latest              67591570dd29        10 weeks ago        191.8 MB

可见,此时已经看到了最新创建的镜像“ chenbb/javaweb:0.1”,其镜像 ID 是“ 99e35759d5ed”。正如上面所描述的那样,我们可以通过“镜像名”或“镜像 ID”来启动容器,与上次启动容器不同的是,我们现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务。此时,需要使用以下命令:

docker run -d -p 58080:8080 --name javaweb --restart=always chenbb/javaweb:0.1 /root/run.sh

参数介绍:

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

9,浏览器查看

在浏览器中,输入以下地址,即可访问 Tomcat 首页:
http://192.168.1.124:58080/

10,镜像打包

打包后就可以移植到其他主机上运行了。
打包:

docker save chenbb/fofeasy:0.1 > /mydata/data/fofeasy0.1.tar

11,在另外的主机上导入镜像

docker load < fofeasy0.1.tar   #导入镜像
docker images   #查看存在的镜像

参考

1,迈出使用Docker的第一步,学习第一个Docker容器
2,使用 Docker 搭建 Java Web 运行环境
3,使用 Docker 运行 Tomcat + WAR 包 Java 应用
4,docker的安装以及jdk和tomcat的环境配置
5,运维人员的解放----Docker快速部署

目录
相关文章
|
19天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
43 3
实战~如何组织一个多容器项目docker-compose
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
58 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
2月前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
45 8
|
2月前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
36 7
|
2月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
35 4
|
2月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
128 1
|
2月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
2月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
63 6
|
26天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
119 26

热门文章

最新文章