一、自定义Tomcat
1、创建工程目录
(1)、在itcloudblog目录下创建tomcat目录
(2)、新建read.txt
(3)、将JDK和tomcat安装的压缩包拷贝上一步目录
(4)、在tomcat目录下新建一个Dockerfile文件
[root@localhost tomcat]# ls -l
total 178352
-rw-r--r--. 1 root root 9352747 Jul 30 13:09 apache-tomcat-8.0.46.tar.gz
-rw-r--r--. 1 root root 659 Jul 30 13:23 Dockerfile
-rw-r--r--. 1 root root 173271626 Jul 30 13:10 jdk-8u45-linux-x64.tar.gz
-rw-r--r--. 1 root root 0 Jul 30 13:10 read.txt
[root@localhost tomcat]#
2、DockerFile文件内容
FROM centos:7
MAINTAINER itcloudblog<zhangxiansen@itcloudblog.cn>
COPY read.txt /usr/local/cincontainer.txt
ADD jdk-8u45-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.46.tar.gz /usr/local/
RUN yum install -y vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_45
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.46
ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.46
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.0.46/bin/startup.sh && tail -F
CMD /usr/local/apache-tomcat-8.0.46/bin/logs/catalina.out
3、构建镜像
[root@localhost tomcat]# docker build -t diytomcat .
[+] Building 127.2s (11/11) FINISHED
=> [internal] load build definition from Dockerfile
=> => transferring dockerfile: 757B
=> [internal] load .dockerignore
=> => transferring context: 2B
=> [internal] load metadata for docker.io/library/centos:7
=> CACHED [1/6] FROM docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd6184 0.0s
=> [internal] load build context
=> => transferring context: 300B
=> [2/6] COPY read.txt /usr/local/cincontainer.txt
=> [3/6] ADD jdk-8u45-linux-x64.tar.gz /usr/local/
=> [4/6] ADD apache-tomcat-8.0.46.tar.gz /usr/local/
=> [5/6] RUN yum install -y vim
=> [6/6] WORKDIR /usr/local
=> exporting to image
=> => exporting layers
=> => writing image sha256:d0da6bd0be0909106ca4f4178437a39f6de53c0efb59528d4fde4e64a77aadae
=> => naming to docker.io/library/diytomcat
[root@localhost tomcat]#
构建完成
4、查看确定构建完毕
[root@localhost tomcat]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat latest d0da6bd0be09 10 minutes ago 827MB
5、运行启动tomcat
[root@localhost tomcat]# docker run -d -p 9090:8080 --name mydiytomcat -v /home/itcloudblog/build/tomcat/test:/usr/local/apache-tomcat-8.0.46/webapps/test -v /home/itcloudblog/build/tomcat-tomcat8logs/:/usr/local/apache-tomcat-8.0.46/logs --privileged=true diytomcat
dfbcd6765adb61a6c7f3eea121885eb61ce430be673f728b77ec6c98445d781d
6、验证测试访问
curl localhost:9090
二、发布镜像
1、在dockerhub上注册一个账号
https://hub.dockercom/signup
2、登录到dockerhub
[root@localhost ~]# docker login -u itcloudblog0520
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@localhost ~]#
3、将镜像发布出去
[root@localhost ~]# docker push itcloudblog0520/diytomcat8:1.0
The push refers to repository [docker.io/itcloudblog0520/diytomcat8]
An image does not exist locally with the tag: itcloudblog0520/diytomcat8
push 过程中出现报错,原因:本地镜像名无账号信息,解决加tga即可。
[root@localhost ~]# docker tag d0da6bd0be09 itcloudblog0520/diytomcat8:1.0
[root@localhost ~]#
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
itcloudblog0520/diytomcat8 1.0 d0da6bd0be09 26 minutes ago 827MB
重新push就OK
[root@localhost ~]# docker push itcloudblog0520/diytomcat8:1.0
The push refers to repository [docker.io/itcloudblog0520/diytomcat8]
5f70bf18a086: Pushed
4f045f1083bd: Pushed
196f5993df7f: Pushed
8287fcf5452f: Pushed
8484fe0a9e6d: Pushed
174f56854903: Mounted from library/centos
1.0: digest: sha256:aca5a468447d972c6b01c5c8eee22ecf6d0be2c226a16946be2764c6e0ad77b8 size: 1578
[root@localhost ~]#