从零使用docker简单部署一个javaweb项目与mysql数据库
centos 7 安装docker:
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
使用 uname -r 查看CentOS内核
使用 root 权限登录 Centos。确保 yum 包更新到最新。
sudo yum update
卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
设置yum源
可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
安装docker
sudo yum install docker-ce-XXX(版本号)
启动docker
systemctl start docker(service start docker)/关闭docker service stop docker
docker 部署一个简单的javaweb项目:
部署一个javaweb项目,我们需要两个镜像,tomcat,mysql
1.切换到root账号,启动docker systemctl start docker
2.下载tomcat镜像
因为docker hub上下载网速慢,所有一般使用国内的代理网站,推荐使用网易蜂巢的镜像中心
左上角为鲸鱼的图标,则表示为docker hub上官方镜像
复制上面的下载地址docker pull hub.c.163.com/library/tomcat:latest ,拉取镜像到本地
3.参照拉取tomcat镜像的方法,下载mysql镜像
4.启动mysql镜像:
因为docker容器,关闭,重启后,会清空容器里面的数据,所有我们用挂载的方式启动mysql,保存数据库数据
先在centos主机上创建文件夹 /usr/mysql_data
挂载启动mysql镜像:docker run --name fbmmysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123qwe -v /usr/mysql_data:/var/lib/mysql
注:--name :给容器取一个别名为fbmmysql
-p :映射端口号,将mysql的端口号3306 映射为 3306
-e MYSQL_ROOT_PASSWORD : 设置root密码为123qwe
-v :使用/usr/mysql_data 挂载mysql数据文件,保存数据库数据
-d : 后台运行容器,并返回容器ID;
hub.c.163.com/library/mysql:镜像名称
可使用docker images 查看所有镜像
使用docker ps 查看正在运行的docker容器:
5.在Windows主机上使用数据库图形化管理工具,连接测试mysql:
这里的ip地址为vm中centos的ip地址,密码为启动mysql时,设置的密码
连接成功后,将所需要的数据库数据导入到mysql
6.使用Dockerfile构建自己的docker镜像
修改web项目的数据库连接信息,将ip信息改为我们启动mysql容器时取的别名,改好,打成war包
在centos中创建文件夹 /usr/fbm,在此文件夹下创建一个Dockerfile文件
将war包上传到这个文件夹下面
编辑Dockerfile文件 vi Dockerfile
第一行from :设置基础镜像,即第二步下载的tomcat镜像
第二行:将我们的war包拷贝到tomcat的webapps下面
7.使用docker build生成镜像:
docker build -t fbm:latest .
注:-t 设置repository,tag
. : 运行当前文件夹下的Dockerfile文件
使用docker images查看生成的镜像
8.启动fbm镜像:
docker run -d -p 8888:8080 --name fbm --link fbmmysql:fbmmysql b6b840a4d1f3
注:--link:tomcat容器与msyql容器简历连接,fbmmysql为启动mysql容器时取的别名,后一个fbmmysql为建立连接的连接名
b6b840a4d1f3 为fbm镜像的image id
9.在Windows主机下输入地址,测试部署结果
ip地址为vm下centos的ip,输入密码,测试数据库连接
登录成功,部署完毕。
注:tomcat启动时最好用挂载,方便查看日志文件