自制javaweb镜像
将一个web项目(这里用一个开源的jpress)部署到tomcat上,发布镜像
pull tomcat
root@jimo:/home/workspace/docker# docker pull hub.c.163.com/library/tomcat:latest
latest: Pulling from library/tomcat
42cb69312da9: Pull complete
5062760e76bd: Pull complete
540b99439160: Pull complete
73204ed26700: Pull complete
c93fd9c7743a: Pull complete
cbbb29240772: Pull complete
0c56a264c3e8: Pull complete
af89dea48ea7: Pull complete
066cf60bebcb: Pull complete
c1c219390d6a: Pull complete
94aaf55e5ccc: Pull complete
d7c4f0197d03: Pull complete
fab96e39c7ca: Pull complete
5a2029ca9dee: Pull complete
Digest: sha256:e9b4474a10ff0059a80bab7c7e0cd0eb2795dc73920b9e1e5288eb305db72c4c
Status: Downloaded newer image for hub.c.163.com/library/tomcat:latest
root@jimo:/home/workspace/docker# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/tomcat latest 08f8166740f8 7 days ago 367MB
hub.c.163.com/library/nginx latest 46102226f2fd 2 weeks ago 109MB
hello-world latest 48b5124b2768 3 months ago 1.84kB
下载web项目
当然可以用自己的
# wget https://github.com/JpressProjects/jpress/raw/master/wars/jpress-web-newest.war
root@jimo:/home/workspace/docker# mv jpress-web-newest.war jpress.war
root@jimo:/home/workspace/docker# ls
install.sh jpress.war
写自己的Dockerfile
root@jimo:/home/workspace/docker# cat Dockerfile
from hub.c.163.com/library/tomcat
MAINTAINER jimo [email protected]
COPY jpress.war /usr/local/tomcat/webapps
这个路径可在tomcat的镜像文档里看:
CATALINA_BASE: /usr/local/tomcat
CATALINA_HOME: /usr/local/tomcat
构建镜像
root@jimo:/home/workspace/docker# docker build -t jpress:latest .
Sending build context to Docker daemon 20.8MB
Step 1/3 : FROM hub.c.163.com/library/tomcat
---> 08f8166740f8
Step 2/3 : MAINTAINER jimo [email protected]
---> Running in e802950209da
---> 6068af0a1a2b
Removing intermediate container e802950209da
Step 3/3 : COPY jpress.war /usr/local/tomcat/webapps
---> 433c37f79f32
Removing intermediate container 104db404e5f7
Successfully built 433c37f79f32
Successfully tagged jpress:latest
root@jimo:/home/workspace/docker# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jpress latest 433c37f79f32 33 seconds ago 388MB
hub.c.163.com/library/tomcat latest 08f8166740f8 7 days ago 367MB
hub.c.163.com/library/nginx latest 46102226f2fd 2 weeks ago 109MB
hello-world latest 48b5124b2768 3 months ago 1.84kB
运行起来
root@jimo:/home/workspace/docker# docker run -d -p 8888:8080 jpress
cf1c87802743b2185f19f64a6de22f7b6e9e0201b803b1378694476d0070d157
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf1c87802743 jpress "catalina.sh run" 3 seconds ago Up 2 seconds 0.0.0.0:8888->8080/tcp dazzling_goldwasser
在页面需要访问数据库,我们再pull一个mysql下来:
pull mysql
root@jimo:/home/workspace/docker# docker pull hub.c.163.com/library/mysql:latest
latest: Pulling from library/mysql
42cb69312da9: Already exists
e2cf5467c4b5: Pull complete
871ec0232f66: Pull complete
3c0ae7ec690d: Pull complete
d39b43089b70: Pull complete
aa0e7cb4b67c: Pull complete
738db9902d06: Pull complete
ae333863ac05: Pull complete
6d014992204a: Pull complete
09aeca0c9a82: Pull complete
0162083b2de0: Pull complete
Digest: sha256:b2bce1a792237ac5df78877d583f34b09ab023a77130921a6bcce67ce2d24ff0
Status: Downloaded newer image for hub.c.163.com/library/mysql:latest
建一个jpress数据库
root@jimo:/home/workspace/docker# docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql
078344a163cd912b4a561477d9c9b43139271c10b71d2576ab6957602778124d
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
078344a163cd hub.c.163.com/library/mysql "docker-entrypoint..." 4 seconds ago Up 4 seconds 0.0.0.0:3307->3306/tcp pensive_lamport
cf1c87802743 jpress "catalina.sh run" 13 minutes ago Up 13 minutes 0.0.0.0:8888->8080/tcp dazzling_goldwasser
root@jimo:/home/workspace/docker#
现在填入基本信息,注意数据库主机的ip配局域网的
重启web服务器
root@jimo:/home/workspace/docker# docker restart cf1
cf1
root@jimo:/home/workspace/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
078344a163cd hub.c.163.com/library/mysql "docker-entrypoint..." 3 minutes ago Up 3 minutes 0.0.0.0:3307->3306/tcp pensive_lamport
cf1c87802743 jpress "catalina.sh run" 17 minutes ago Up 4 seconds 0.0.0.0:8888->8080/tcp dazzling_goldwasser
root@jimo:/home/workspace/docker#
就ok了