Docker学习之搭建JavaWeb环境
时间:2022-05-06
本文章向大家介绍Docker学习之搭建JavaWeb环境,主要内容包括回顾、配置、访问、快捷、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
自上次从北京参加阿里云社区开发者进阶大会回来,就萌发了学习Docker的种子,尽管公司现在的业务并没有什么需求,但学习先进的东西总没有坏处。
2017年,Docker 四周岁啦!尽管之前有所耳闻,但是并没有机会和时间去接触,正好手里躺着两台服务器,趁着年底系统的学习一下,自此接触并认识小鲸鱼。
回顾
上一篇文章大体对Docker有了一定的认识和了解,Docker学习,并从阿里云官方镜像拉取了一个centos镜像。今天,来学下Docker容器如何配置一个JavaWeb环境。
配置
首先查看是否有容器或者在运行,然后启动并进入容器:
# 查看所有容器
docker ps -a
# 查看运行中的容器
docker ps
# 启动容器
docker start 容器名或ID
# 进入容器
docker attach 容器名或ID
安装JDK,这里我们直接使用YUM安装(简单方便与官方的基本没什么差别):
yum install java -y
安装完成,如果没有错误,执行以下命令检查是否安装成功:
java -version
安装Tomcat容器,这里我们下载官方的Tomcat8:
# 下载
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz
# 解压
tar -zvf apache-tomcat-8.5.24.tar.gz
# 重命名
mv apache-tomcat-8.5.24 tomcat8
# 切换的执行目录
cd tomcat8/bin
# 启动容器
./startup.sh
启动后,切换到logs目录查看日志是否启动成功:
tail -100f catalina.out
访问
以上配置完成以后,那么我们如何访问容器中的服务呢?由于母鸡中安装配置了OpenResty,我们可以使用OpenResty做代理服务访问我们容器内部的服务。
首先我们命令查看容器的内网IP:
# 查询单个容器的IP
docker inspect <container id>
# 或者查询所有容器的IP
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
然后通过Nginx代理配置:
server {
listen 80;
server_name docker.52itstyle.com;
charset utf-8;
location / {
default_type text/html;
proxy_pass http://172.18.0.2:8080;
}
}
最终访问地址:http://docker.52itstyle.com/
快捷
当然,如果你不想一步步配置JavaWeb运行环境,你可以执行执行以下命令获取现成的打包镜像:
#阿里镜像
docker login --username=admin@52itstyle.com registry.cn-hangzhou.aliyuncs.com
# 获取 tomcat8版本
docker pull tomcat:8
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP 恶意程序简单分析
- springboot之相关环境设置
- springboot之第一个springboot程序
- 「查缺补漏」巩固你的RocketMQ知识体系
- springboot之场景启动器
- ICLR2020 | 深度自适应Transformer
- springboot之自动配置
- golang--连接redis数据库并进行增删查改
- golang--redis连接池
- springboot配置之使用application.properties时编码问题
- mybatis动态sql之foreach补充(二)
- golang数据结构之稀疏数组
- mybatis扩展之使用PageHelper插件进行分页(是真好用)
- 动态规划--0,1背包问题(再也不怕类似背包问题了)
- springboot配置之Profile多环境支持