docker部署springboot项目,使用Dockerfile

简单梳理一下步骤,docker在我这个使用者看来,就是一些简单的命令活

1:安装docker后启动

#安装yum-utils:
yum install -y yum-utils device-mapper-persistent-data lvm2

#为yum源添加docker仓库位置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#安装docker
yum install docker-ce

#启动docker
systemctl start docker

2:docker拉去mysql镜像,启动数据库,并创建数据库,上传数据库脚本,创建表

#下载mysql5.7的docker镜像
docker pull mysql:5.7

#使用docker命令后台启动数据库,设置数据库密码为admin
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=admin  -d mysql:5.7

#进入运行mysql的docker容器
docker exec -it mysql /bin/bash

#使用mysql命令打开客户端
mysql -uroot -padmin --default-character-set=utf8

#创建数据库,我项目使用的数据库为vote
create database vote character set utf8

#安装上传下载插件,并将本地的数据库脚本上传到Linux服务器上
yum -y install lrzsz

#将vote.sql文件拷贝到mysql容器的/目录下
docker cp /root/vote.sql mysql:/

#打开vote数据库,将sql文件导入到数据库
use vote;
source /vote.sql;

3:本地将工程打成jar包上传到服务器,由于要连接docker容器中的数据库,配置文件需要修改下

#mysql连接信息
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#这里的ip使用db替代,端口不变
spring.datasource.url=jdbc:mysql://db:3306/vote?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=admin

4:Dockerfile文件没有后缀名,在windows我没找到怎么创建的,所以就在linux服务器上创建Dockerfile文件吧,将Dockerfile文件和jar包放在同一个目录

Dockerfile内容(这有点东西的,详情请自行百度)

# 该镜像需要依赖的基础镜像
FroM java:8
VOLUME /tmp
# 将当前目录下的jar包复制到docker容器的/目录下
ADD vote-0.0.1-SNAPSHOT.jar /vote.jar
# 运行过程中创建一个mall-tiny-docker-file.jar文件
RUN bash -c 'touch /vote.jar'
# 声明服务运行在8080端口
EXPOSE 8080
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java","-jar","/vote.jar"]

5:在Dockerfile所在目录执行以下命令

# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile
docker build -t vote-test/vote:0.0.1-SNAPSHOT .

运行完之后,没报错的话docker images查看

docker部署springboot项目,使用Dockerfile_第1张图片

 

6:运行这个vote容器,这里的db就是我们项目配置文件中的db

docker run -p 8080:8080 --name vote --link mysql:db  -d vote-test/vote:0.0.1-SNAPSHOT

7:动态查看日志

docker logs $ContainerName(或者$ContainerId) -f

docker部署springboot项目,使用Dockerfile_第2张图片

 

8:浏览器访问项目http://ip:8080/,效果

docker部署springboot项目,使用Dockerfile_第3张图片

 

号外:开启docker的远程控制端口,除了能在外网访问docker,我还感觉不粗来有啥用

centos7开启方式

vim /lib/systemd/system/docker.service

找到 ExecStart行

修改为

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 

重启docker

systemctl daemon-reload 
systemctl restart docker

浏览器访问:

docker部署springboot项目,使用Dockerfile_第4张图片

 

 

下一篇:docker-compose部署springboot项目

 

 

 

 

 

你可能感兴趣的:(docker,springboot)