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

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

  • 1、安装docker
      • 2、自定义镜像jdk
            • 第一步:安装ubuntu镜像
            • 第二步:切换到docker目录
            • 第三步:将jdk文件放在root/web-docker目录下
            • 第四步:创建文件Dockerfile
            • 第五步:构建镜像
            • 第六步:查看镜像ID
            • 第七步:运行镜像
      • 3、自定义镜像tomcat
            • 第一步:将原Dockerfile文件更名为Dockerfile-jdk
            • 第二步:将tomcat上传到/root/web-docker目录下
            • 第三步:定义 Dockerfile 文件
            • 第四步:构建镜像
            • 第五步:运行镜像
            • 第六步:在客户端运行,出现如下画面,代表tomcat安装成功
      • 4、自定义镜像Redis
            • 第一步:首先先新建两个文件,一个redis.conf, 一个Dockerfile,放在一个文件夹web-docker里
            • 第二步 Dockerfile内容
            • 第三步:拷贝redis.conf文件到web-docker目录
            • 第四步:执行命令即可创建一个自己的redis镜像
            • 第五步:查看镜像是否存在:docker images
            • 第六步:创建容器
            • 第七步:解决容器无法启动问题
            • 第八步:再次创建容器
      • 5、自定义镜像mysql
            • 第一步 :创建Dockerfile文件
            • 第二步:构建
            • 第三步:使用新的镜像创建容器
            • 第四步:进入容器
            • 第五步:修改root远程连接权限**
      • 6、部署pringboot项目
        • Docker部署 jar包SpringBoot程序
            • 第一步:在application.yaml中配置redis地址 不要用Localhost
            • 第二步:在application.yaml中配置数据库地址 不要用Localhost
            • 第三步:先将pom.xml中的packaging改为jar
            • 第四步:打包
            • 第五步:将jar包拷贝到root/docker目录下
            • 第六步:定义jar包程序 /root/docker/Dockerfile文件内容
            • 第七步:在客户端运行该程序
            • 注意:切记如果您的项目有使用到redis和tomcat就一定要启动容器
    • 此次是小编第一次发布博客,希望能对大家有一定的帮助,谢谢大家!

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目录下

Docker部署springboot项目(保姆级文档)_第1张图片

第四步:创建文件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部署springboot项目(保姆级文档)_第2张图片

第五步:构建镜像

docker build -t obtk_fly_jdk1.8.0_121 .

Docker部署springboot项目(保姆级文档)_第3张图片

第六步:查看镜像ID

Docker部署springboot项目(保姆级文档)_第4张图片

第七步:运行镜像

docker run 镜像id

Docker部署springboot项目(保姆级文档)_第5张图片

当看到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目录下

Docker部署springboot项目(保姆级文档)_第6张图片

第三步:定义 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部署springboot项目(保姆级文档)_第7张图片

第四步:构建镜像

docker build -t obtk-fly-tomcat-9.0.48 .
Docker部署springboot项目(保姆级文档)_第8张图片

第五步:运行镜像

docker run -d -p 8081:8080 d682230f4641

在这里插入图片描述

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

Docker部署springboot项目(保姆级文档)_第9张图片

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" ]

Docker部署springboot项目(保姆级文档)_第10张图片

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

Docker部署springboot项目(保姆级文档)_第11张图片

更改后密码为123456

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

docker build -t obtk-fly-redis .

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

在这里插入图片描述

第六步:创建容器

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

Docker部署springboot项目(保姆级文档)_第12张图片

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

在这里插入图片描述

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

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

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

在这里插入图片描述

第八步:再次创建容器

在这里插入图片描述

创建成功啦!

5、自定义镜像mysql

第一步 :创建Dockerfile文件

文件名为:mymysql.yaml

在这里插入图片描述

Docker部署springboot项目(保姆级文档)_第13张图片

### 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核心数设置
第二步:构建

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

#-f指定dockerfile文件#-t指定新的镜像名称和版本号#注意末尾有个 “.”
Docker部署springboot项目(保姆级文档)_第14张图片

docker # images#查看镜像,当有mymysql:1镜像,说明构建成功
Docker部署springboot项目(保姆级文档)_第15张图片

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

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

Docker部署springboot项目(保姆级文档)_第16张图片

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

grant all privileges on *.* to ‘root‘@‘%‘ identified by123456with grant option;
grant all privileges on *.* to ‘root‘@‘localhost‘ identified by123456with grant option; 
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

6、部署pringboot项目

Docker部署 jar包SpringBoot程序

Docker部署springboot项目(保姆级文档)_第17张图片

第一步:在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>

Docker部署springboot项目(保姆级文档)_第18张图片

第四步:打包

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

再执行package包打包

Docker部署springboot项目(保姆级文档)_第19张图片

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

Docker部署springboot项目(保姆级文档)_第20张图片

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

Docker部署springboot项目(保姆级文档)_第21张图片

第六步:定义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"]

Docker部署springboot项目(保姆级文档)_第22张图片

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

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

Docker部署springboot项目(保姆级文档)_第23张图片

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

在这里插入图片描述

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

Docker部署springboot项目(保姆级文档)_第24张图片
成功:)

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

在这里插入图片描述

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

你可能感兴趣的:(linux,docker,linux,spring,boot,ubuntu)