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
