当前位置:   article > 正文

Docker部署springboot项目(保姆级文档)

docker部署springboot

Docker部署springboot项目(保姆级文档)

1、安装docker

step 1: 安装必要的一些系统工具

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

# step 2: 安装GPG证书

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# Step 3: 写入软件源信息

sudo add-apt-repository “deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable”

# Step 4: 更新并安装 Docker-CE

sudo apt-get -y update

sudo apt-get -y install docker-ce

#查看是否安装成功 查看容器的运行情况

docker ps

在这里插入图片描述

2、自定义镜像jdk

第一步:安装ubuntu镜像

docker pull ubuntu

在这里插入图片描述

第二步:切换到docker目录

root@ubuntu:~# mkdir /root/web-dockerroot@ubuntu:~# cd /root/web-docker

第三步:将jdk文件放在root/web-docker目录下

在这里插入图片描述

第四步:创建文件Dockerfile

将以下内容拷贝到root/web-docker/Dockerfile 下

FROM ubuntu:latest

MAINTAINER obtk-fly

ADD jdk-8u291-linux-x64.tar.gz /usr/local

ENV JAVA_HOME /usr/local/jdk1.8.0_291

ENV CLASSPATH J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar

ENV PATH P A T H : PATH: PATH:JAVA_HOME/bin

CMD java -version

在这里插入图片描述

在这里插入图片描述

第五步:构建镜像

docker build -t obtk_fly_jdk1.8.0_121 .

在这里插入图片描述

第六步:查看镜像ID

在这里插入图片描述

第七步:运行镜像

docker run 镜像id

在这里插入图片描述

当看到jdk版本时代表jdk在docker容器中安装成功

3、自定义镜像tomcat

第一步:将原Dockerfile文件更名为Dockerfile-jdk

​ 创建新的文件Dockerfile

在这里插入图片描述

root@ubuntu:~/web-docker# mv Dockerfile Dockerfile-jdkroot@ubuntu:~/web-docker# touch Dockerfile

第二步:将tomcat上传到/root/web-docker目录下

在这里插入图片描述

第三步:定义 Dockerfile 文件

FROM obtk_fly_jdk1.8.0_121

MAINTAINER obtk-fly

ADD apache-tomcat-9.0.48.tar.gz /usr/local/

ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.48

ENV PATH P A T H : PATH: PATH:CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080

CMD /usr/local/apache-tomcat-9.0.48/bin/catalina.sh run

在这里插入图片描述

第四步:构建镜像

docker build -t obtk-fly-tomcat-9.0.48 .
在这里插入图片描述

第五步:运行镜像

docker run -d -p 8081:8080 d682230f4641

在这里插入图片描述

第六步:在客户端运行,出现如下画面,代表tomcat安装成功

在这里插入图片描述

4、自定义镜像Redis

第一步:首先先新建两个文件,一个redis.conf, 一个Dockerfile,放在一个文件夹web-docker里

在这里插入图片描述

第二步 Dockerfile内容
# 拉取仓库的redis
FROM redis:5.0.14
MAINTAINER obtk-fly
# 将本地redis配置文件替换到镜像里
COPY redis.conf /usr/local/etc/redis/redis.conf
# 暴漏端口
EXPOSE 6379
# 启动命令
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

第三步:拷贝redis.conf文件到web-docker目录

在这里插入图片描述

更改后密码为123456

第四步:执行命令即可创建一个自己的redis镜像

docker build -t obtk-fly-redis .

第五步:查看镜像是否存在:docker images

在这里插入图片描述

第六步:创建容器

** docker run -d -p 6379:6379 镜像ID**

在这里插入图片描述

此时可能会出现一个小问题,你会发现你的容器无法启动?

在这里插入图片描述

第七步:解决容器无法启动问题

将/root/web-docker/redis.conf 配置文件中的daemonize 改为no,daemonize默认为yes,

主要原因是daemonize yes 和 -d 有冲突导致容器在启动时就失效了

在这里插入图片描述

第八步:再次创建容器

在这里插入图片描述

创建成功啦!

5、自定义镜像mysql

第一步 :创建Dockerfile文件

文件名为:mymysql.yaml

在这里插入图片描述

在这里插入图片描述

### dockerfile 自定义mysql容器镜像
 FROM mysql:latest
#使用官方mysql镜像最新版 
RUN echo "###" >> /etc/mysql/my.cnf
RUN echo "log_bin = 1" >> /etc/mysql/my.cnf
#开启binlog日志,存储在默认位置 
RUN echo "max_connections = 1050" >> /etc/mysql/my.cnf
RUN echo "mysqlx_max_connections = 1000" >> /etc/mysql/my.cnf
#最大连接数 
RUN echo "wait_timeout=86400" >> /etc/mysql/my.cnf
RUN echo "interactive_timeout=86400" >> /etc/mysql/my.cnf
#空闲断开时长,秒 
RUN echo "innodb_read_io_threads=4" >> /etc/mysql/my.cnf
RUN echo "innodb_write_io_threads=4" >> /etc/mysql/my.cnf
#设置使用多核cpu,默认使用4核,根据cpu核心数设置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
第二步:构建

docker build -f ./mymysql.yaml -t “mymysql:1” .

#-f指定dockerfile文件#-t指定新的镜像名称和版本号#注意末尾有个 “.”
在这里插入图片描述

docker # images#查看镜像,当有mymysql:1镜像,说明构建成功
在这里插入图片描述

第三步:使用新的镜像创建容器

docker run -itd --name mymysql -e MYSQL_ROOT_PASSWORD=123456 mymysql:1
在这里插入图片描述

| 如果上面的镜像不行,直接再pull latest镜像docker run -p 3306:3306 -e MYSQL_DATABASE=workdb -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

在这里插入图片描述

第四步:进入容器
root@ubuntu:~/web-docker# docker exec -it mymysql  bash
root@da041964f45d:/# mysql -uroot -p123456
  • 1
  • 2
第五步:修改root远程连接权限**
Mysql8.0之前的版本

grant all privileges on *.* to ‘root‘@‘%‘ identified by123456with grant option;
grant all privileges on *.* to ‘root‘@‘localhost‘ identified by123456with grant option; 
  • 1
  • 2
  • 3
  • 4
MySql8.0之后的版本

 mysql> alter user root@'%' identified by '123456';
 mysql> grant all privileges on *.* to root@'%' with grant option;
 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';  #解决编码问题 
 #只要该句话运行成功即可
 mysql> FLUSH PRIVILEGES;
 mysql> quit  
 #退出mysql
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

6、部署Springboot项目

Docker部署 jar包SpringBoot程序

在这里插入图片描述

第一步:在application.yaml中配置redis地址 不要用Localhost
第二步:在application.yaml中配置数据库地址 不要用Localhost
第三步:先将pom.xml中的packaging改为jar
<groupId>com.obtk</groupId>
<artifactId>just-redis-shiro</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

第四步:打包

执行maven工具中的clean命令清除编译的target目录

再执行package包打包

在这里插入图片描述

打包完后在新编译的target目录下有一个jar包

在这里插入图片描述

第五步:将jar包拷贝到root/docker目录下

在这里插入图片描述

第六步:定义jar包程序 /root/docker/Dockerfile文件内容
#base image
FROM adoptopenjdk/openjdk8:latest
#类似于执行 linux指令
RUN mkdir /opt/app
#类似于linux copy指令
COPY just-redis-shiro-1.0.jar /opt/app/just-redis-shiro-1.0.jar
#对外端口
EXPOSE 8081
#执行命令 java -jar /opt/app/demo-docker.jar
CMD ["java", "-jar", "/opt/app/just-redis-shiro-1.0.jar"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

构建和运行 Jar 包程序的镜像

构建镜像:docker build -t just-sun .

在这里插入图片描述

运行容器:docker run -d -p 8081:8081 镜像ID

在这里插入图片描述

第七步:在客户端运行该程序

在这里插入图片描述
成功:)

注意:切记如果您的项目有使用到redis和tomcat就一定要启动容器

在这里插入图片描述

此次是小编第一次发布博客,希望能对大家有一定的帮助,谢谢大家!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/57827
推荐阅读
相关标签
  

闽ICP备14008679号