Docker部署SpringBoot项目

一、安装Docker

#安装

yum install docker

#查看

docker --version

#启动/重启

systemctl start/restart docker

二、安装redis

  • docker run表示运行的意思
  • --name myredis 表示起个名字叫myredis
  • -p 6379:6379表示把linux服务器的6379映射到docker的6379端口,这样就可以通过服务器的端口访问docker的端口
  • -d 表示以后台服务形式运行redis
  • redis redis-server --appendonly yes表示开启持久化缓存模式,可以存到硬盘

#拉取镜像

docker pull redis

#运行容器

docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes

三、安装mysql(注意复杂指令要手敲

#拉取镜像

docker pull mysql:5.7.27

#运行容器(保存头像)

docker run --name mymysql -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql:5.7.27 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

配置mysql数据库的远程连接

注意:mysql数据库连接的是mysql容器,一旦容器删除,数据库需要重新部署

连接远程数据库

四、安装RabbitMq

rabbitmq默认本地登录用户名是guest,如果是云服务器,需要重新设置用户名,并与application.yml中的一致

docker run -d --hostname my-rabbit --name myrabbit -e RABBITMQ_DEFAULT_USER=huangjian -e RABBITMQ_DEFAULT_PASS=1234 -p 15672:15672 -p 5672:5672 rabbitmq:management

五、安装ElasticSearch

#系统配置

sysctl -w vm.max_map_count=262144

#运行镜像

docker run -p 9200:9200 -p 9300:9300 -d --name es_643 elasticsearch:6.4.3

#进入容器

docker exec -it es_643 /bin/bash

#修改cluster-name,与application.yml中一致

vi /usr/share/elasticsearch/config/elasticsearch.yml

#安装中文分词插件

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip

进入es配置文件位置: /usr/share/elasticsearch/config/elasticsearch.yml,修改cluster.name为application.yml中的

退出并重启镜像

exit

docker restart es_643

六、构建eblog的docker镜像

1、进入Springboot项目,通过Git bash here打包项目

# 打包  mvn clean package -Dmaven.test.skip=true

2、创建一个文件夹eblog,把项目 eblog-0.0.1-SNAPSHOT.jar 包放进去,然后将Dockerfile文件(vim Dockerfile)也放进去,Dockerfile内容如下:

FROM java:8

EXPOSE 8080

VOLUME /tmp

ENV TZ=Asia/Shanghai

RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo "{TZ}" > /etc/timezone

ADD eblog-0.0.1-SNAPSHOT.jar  app.jar

RUN bash -c 'touch /app.jar'

ENTRYPOINT ["java","-jar","/app.jar"]

  • FROM java:8 表示基于java8镜像构建新镜像,必须作为第一个指令
  • EXPOSE 8080 表示对外暴露的端口是8080
  • VOLUME /tmp 表示挂载到/tmp目录 ,其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
  • ADD eblog-0.0.1-SNAPSHOT.jar /app.jar 表示把jar包复制到镜像服务里面的根目录,并改名为app.jar
  • RUN bash -c 'touch /app.jar' 表示执行创建app.jar
  • ENTRYPOINT ["java","-jar","/app.jar"] 表示执行启动命令java -jar

3、进入eblog文件夹,安装Dockrfile的命令,把eblog-0.0.1-SNAPSHOT.jar构建成docker的镜像

#构建镜像(注意后面有个点

docker build -t eblog .

#查看新镜像

docker images

七、启动项目(即新建容器)

容器名:application.yml中的别名

docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbitmq --link mymysql:emysql --link myredis:eredis -d eblog

-p 8080:8080 -p 9326:9326 :9326是因为即时聊天需要用到的ws端口 --link es:ees 表示关联容器,把容器es起别名为ees

查看eblog打印日志(一定不要忘记执行,否则无法运行

docker logs -f eblog

八、重新部署项目

#停止eblog容器

docker stop eblog

#删除eblog容器

docker rm eblog

#删除eblog镜像

docker rmi eblog

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值