VMware workstation
CentOS 7
Docker
author:zoxiii
Docker部署Java Web应用
1、拉取Tomcat镜像
docker pull tomcat
2、拉取mysql镜像,建立数据库
docker pull mysql:5.6
docker run --name mysql56 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 ## 启动
docker exec -it mysql56 /bin/bash ## 进入容器
mysql -uroot -p ## 登录mysql
create database JPress; ## 创建数据库
create user 'zforweb'@'%' identified by '123456'; ## 创建登录用户
grant all on JPress.* to 'zforweb'@'%' with grant option; ## 赋权限
flush privileges; ## 刷新权限
3、打包Java Web项目为war包
JPress官网直接下载war包
传送到虚拟机中
4、创建文件Dockerfile来部署
mkdir myJPress ## 创建文件夹
cp jpress-v4.1.4.war /home/zoxiii/myJPress
cd myJPress ## 进入文件夹
touch Dockerfile ## 创建Dockerfile文件
vi Dockerfile ## 编写Dockerfile文件
- Dockerfile内容
from tomcat # 你的tomcat的镜像
MAINTAINER zoxiii@163.com # 作者邮箱
RUN rm -rf /usr/local/tomcat/webapps/* # 清除webapps目录下的其他内容
COPY jpress-v4.1.4.war /usr/local/tomcat/webapps # 放置到tomcat的webapps目录下
docker build -t myimage . ## 生成新的镜像
.
:点标明是在根据当前目录构建
docker images ## 查看创建的镜像
docker run -d -p 8001:8080 --name javaweb01 myimage ## 创建容器
docker exec -it javaweb01 /bin/bash ## 进入容器
cd webapps
ls
5、访问网页开始安装
192.168.184.5:8001/jpress-v4.1.4/
6、导出容器为镜像
- 首先注册一个Docker账号
docker commit -a "zoxiii" -m "notes" 118143ffd8b0 zoxiii/myjpress:v1
docker commit -a "zoxiii" -m "notes" 195842d8b39b zoxiii/myjpress:v1
-a
:作者名-m
:提交时所作的注解118143ffd8b0
:需要导出的容器IDzoxiii/mymysql:v1
:导出的tag名,zoxiii是自己dockerhub用户名
docker login ## 登录docker
docker push zoxiii/myjpress:v1 ## push到hub仓库
问题
:一直卡在一步waiting,无法push成功!,最终使用导出容器的方式。
7、导出容器
docker export 118143ffd8b0 > myjpress.tar
docker import - new_myjpress < myjpress.tar
docker images