Docker(十一):Docker实战部署HTTPS的Tomcat站点
1、选择基础镜像
docker pull tomcat:7.0-jre8
2、生成HTTPS证书
keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
root@HX-StrMedia:~/ssl# ls
tomcat.keystore
3、启动tomcat容器并导入证书
root@7632c9d5c82b:/usr/local/tomcat# ls /tmp/
tomcat.keystore
root@7632c9d5c82b:/usr/local/tomcat# mkdir keys
root@7632c9d5c82b:/usr/local/tomcat# cp /tmp/tomcat.keystore keys/
root@7632c9d5c82b:/usr/local/tomcat# ls keys/
tomcat.keystore
修改配置文件如下:
<Connector port="8443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/local/tomcat/keys/tomcat.keystore"
keystorePass="dukuan" />
也可配置8080 端口
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/local/tomcat/keys/tomcat.keystore"
keystorePass="dukuan"
/>
4、Commit
不退出容器在宿主机commit
root@HX-StrMedia:~/ssl# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d3a3c7964a89 tomcat:7.0-jre8 "bash" 28 seconds ago Up 26 seconds 8080/tcp determined_mahavira
root@HX-StrMedia:~/ssl# docker commit d3a3c7964a89 tomcat:https
root@HX-StrMedia:~/ssl# docker images;
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tomcat https 5308378959ab About a minute ago 560.8 MB
5、启动并访问
root@HX-StrMedia:~/ssl# docker run --rm -ti -p 9099:8080 tomcat:https
root@HX-StrMedia:~/ssl# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
532a4ef7efcc tomcat:https "bash" 29 seconds ago Up 29 seconds 0.0.0.0:9099->8080/tcp thirsty_bhaskara
访问宿主机9099端口即可
6、将web源码部署到Tomcat镜像中
6.1 静态导入
创建Dockerfile如下,将websrc下的源码复制到webapps下
# cat Dockerfile
# This is Dockerfile
# Version 1.0
# Author is Dukuan
# 第一行必须指定基于的基础镜像
FROM centos
# 维护者信息
MAINTAINER Du Kuan
FROM tomcat:https
COPY ./websrc /usr/local/tomcat/webapps/myproj/
# docker build -t myweb:v1 .
Sending build context to Docker daemon 3.072 kB
Step 1 : FROM centos
---> d4350798c2ee
Step 2 : MAINTAINER Du Kuan
---> Running in cd053280ea4f
---> 687ac7bd642f
Removing intermediate container cd053280ea4f
Step 3 : FROM tomcat:https
---> 71400c2da356
Step 4 : COPY ./websrc /usr/local/tomcat/webapps/myproj/
---> f704dc9f0466
Removing intermediate container 4fd43be2f210
Successfully built f704dc9f0466
# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myweb v1 f704dc9f0466 7 minutes ago 560.8 MB
tomcat https 71400c2da356 4 hours ago 560.8 MB
6.2 静态挂载
创建Dockerfile
# This is Dockerfile
# Version 1.0
# Author is Dukuan
# 第一行必须指定基于的基础镜像
FROM tomcat:https
# 维护者信息
MAINTAINER Du Kuan
RUN mkdir -p /usr/local/tomcat/webapps/myproj
# 表示在镜像中创建一个挂载点
VOLUME /usr/local/tomcat/webapps/myproj
创建镜像
docker build -t myweb:v2 .
启动镜像
docker run -ti -v $(pwd)/../websrc:/usr/local/tomcat/webapps/myproj myweb:v2
主机修改文件
echo "This is page" >> index.jsp
查看容器是否修改
root@4899f6c92448:/usr/local/tomcat# cat webapps/myproj/index.jsp
Test Page
This is page
Docker(十一):Docker实战部署HTTPS的Tomcat站点的更多相关文章
- Docker(十一)-Docker commit创建镜像
创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 修改已有的镜像 查看已有的镜像: $ sudo docker images REPOSITO ...
- 【原创】运维基础之Docker(2)通过docker部署zookeeper nginx tomcat redis kibana/elasticsearch/logstash mysql kafka mesos/marathon
通过docker可以从头开始构建集群,也可以将现有集群(配置以及数据)平滑的迁移到docker部署: 1 docker部署zookeeper # usermod -G docker zookeeper ...
- Docker Compose 一键部署Nginx代理Tomcat集群
Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [root@localhost ~]# tree compose_nginx_tomcat/ compose_nginx ...
- Docker实战之创建一个tomcat容器
一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...
- docker实战部署Javaweb项目
一.部署环境说明 docker服务版本:version 18.09.0nginx服务版本:version: nginx/1.15.10redis服务版本:version: redis/5.0.3tom ...
- SpringCloudAlibaba微服务docker容器打包和部署示例实战
概述 我们使用前面<SpringCloudAlibaba注册中心与配置中心之利器Nacos实战与源码分析(中)>的两个微服务示例,分别是库存微服务和订单微服务,基于Nacos注册中心和配置 ...
- Docker中Nginx,部署Tomcat,部署es + kibana,Docker的可视化,Commit镜像
docker安装使用Nginx # 搜索信息 docker search nginx # 下载镜像 docker pull nginx # 运行测试 # --name给容器命名 # -p 宿主机端口: ...
- Docker swarm 实战-部署wordpress
Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo 6imq8da3vcwvj2n499k ...
- (四) Docker 使用Let's Encrypt 部署 HTTPS
参考并感谢 周花卷 https://www.jianshu.com/p/5afc6bbeb28c 下载letsencrypt镜像(不带tag标签则表示下载latest版本) docker pull q ...
随机推荐
- Django框架的安装
下载Django框架 创建一个django项目 在E盘Mysite文件夹下创建了一个django项目叫mysite 当前文件夹下会产生一个mysite的文件夹,目录结构如下: manage.py -- ...
- 使用JSCH框架通过跳转机访问其他节点
之前搞了套远程访问ssh进行操作的代码,最近有需求,需要通过一台跳转机才能访问目标服务.在网上搜了半天,也没找到比较好的例子,就自己翻阅了下JSCH的API.但是看的云里雾里的.联想了下,端口转发的原 ...
- OpenCASCADE 参数曲线曲面面积
OpenCASCADE 参数曲线曲面面积 eryar@163.com Abstract. 本文介绍了参数曲面的第一基本公式,并应用曲面的第一基本公式,结合OpenCASCADE中计算多重积分的类,对任 ...
- Django学习(1)一首情诗
Django是Python中Web开发的最有代表性的框架之一.本文将简单介绍如何入门Django开发. 首先确保你的linux系统已安装django模块.打开Python3,利用以下命令可找到djan ...
- javascript设计模式——装饰者模式
前面的话 在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责.那么可以使用装饰者模式.装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.本文将 ...
- VSCode配置eslint
在Vue.js项目中,使用的是eslint检查. 而在我写完代码后,cnpm run dev运行命令...然后悲剧了,一大堆报错!╮(╯▽╰)╭ 安装插件:Vetur:这是vscode上一个vue.j ...
- 实践作业3:白盒测试----我是如何写测试用例DAY6
一开始接到写白盒测试的任务,我感觉挺难的,因为感觉之前我所想到的都是黑盒测试啊,说到测试系统逻辑,感觉就有些神秘的样子没有思路了,那黑盒和白盒写的到底有啥区别.后来我请教了实验室的一个同学,他虽然还没 ...
- Docker笔记四:Elasticsearch实例部署
在运行或启动elasticsearch容器前,先在宿主机上执行 sysctl -w vm.max_map_count=262144: 解决" max virtual memory areas ...
- Tomcat下载,新建自己的项目,模拟server
一.tomcat下载 下载地址http://tomcat.apache.org/ 打开网页能够看到例如以下内容 在网页左边有Download以下就是能够下载的版本号.如6.0,7.0,8.0: 选择一 ...
- 每天一个JavaScript实例-防止反复表单提交
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...