了解了docker的一些基本概念与操作后,尝试部署自己的javaweb程序到容器上,为了简单起见,我们用jpress这个开源的简易博客来做就行。
git clone https://gitee.com/GalaIO/jpress.git
下载完成后 在jpress/wars里面找到一个war包,我们把它复制出来放到自己的工作目录下。
由于我们要部署的是javaweb 我们需要在docker容器中导入tomcat来作为服务器,前往网易蜂巢找到相应的tomcat源,执行以下语句:
docker pull hub.c.163.com/library/tomcat:latest
下载完毕后,编写Dockerfile(MAINTAINER是你的个人信息什么的,类似于版权)
vi Dockerfile
from hub.c.163.com/library/tomcat
MAINTAINER xxxxx xxxxx
COPY jpress-web-newest.war /usr/local/tomcat/webapps
执行Dockerfile:(最后的.代表当前目录)
docker build -t jpress:latest .
接着就是运行我们做好的容器了:
docker run -d -p 8888:8080 jpress
8888代表本地端口,8080是tomcat的默认端口
完成后可以通过 nestat -na | grep 8888查看端口是否处于监控状态
然后就可以访问了
localhost:8888/jpress
接着我们就需要在docker容器中安装mysql了,方法和安装tomcat差不多,也是到网易蜂巢上找到源
docker pull hub.c.163.com/library/mysql:latest
安装完成后,运行容器一波:
docker run -d -p 3336:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest
注意 这里的3336是我本地的端口,因为我本地已经有mysql了所以3306被占用了,后面的3306则是容器里msql的端口,然后MYSQL_ROOT_PASSWORD则是密码,MYSQL_DATABASE是数据库名
运行成功后就可以去填网页上jpress的那个表了
注意以下几点:
数据库主机是你本地的ip 可以通过ifconfig来查看你本地的ip地址
端口号也是本地的 也就是3336
ok 到此就搞定啦~