安装docker并部署springboot项目

1.创建虚拟机项目ubuntu

第一步先创建虚拟机系统,切记必须要联网才行。 可以看到我这个虚拟机已经连上网络了。

配不配置jdk其实都可以,我们部署docker可以直接使用官方的jdk镜像,找到对应的版本就行,直接看第三步就OK。

2.安装jdk

首先需要去jdk官网,找到对应jdk的linux版本,下面按照jdk11来举例。 下载之后需要先上传到虚拟机服务器,这里我是用xftp来举例,如下: 这里我是上传到了/usr/local/的目录下,因为可能是因为使用的用户连接而不是管理员连接,因此就需要先在该目录下执行一条命令:

bash 复制代码
sudo chown -R username:username 文件夹路径

比如我这里的用户名是ljx,文件夹路径是/usr/local/,所以我要终端输入命令 sudo chown -R username:username 文件夹路径

上传完成之后就需要解压了,这里我建议先创建一个JAVA目录,方便查看。

arduino 复制代码
sudo mkdir java

解压使用命令:

bash 复制代码
# 解压压缩包 
sudo tar -zxvf jdk-11.0.25_linux-x64_bin.tar.gz -C /usr/local/java/

解压完成后我们就可以看到数据了,然后检查下版本,看看有没有问题。 可以看到没有问题,那么接下来就需要配置环境变量了,直接按照下面代码走就可以了:

bash 复制代码
# 没有安装vim就用vi就可以
sudo vim /etc/profile 

# 进入到文件之后将下列内容添加到文件末尾即可
# JDK 11 
export JAVA_HOME=/usr/local/java/jdk-11.0.12
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

# 使其生效 
source /etc/bashrc

3.安装docker

第一步先更新软件包。

sql 复制代码
sudo apt-get update 
sudo apt-get upgrade

如果你电脑上有老版本的docker,那么请先卸载,执行下面命令即可:

sudo apt-get remove docker docker-engine docker.io containerd runc

第二步可安装docker了,执行以下步骤即可:

1.安装docker依赖:

arduino 复制代码
sudo apt-get install ca-certificates curl gnupg lsb-release

2.添加docker密钥

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

3.添加阿里云docker软件源(从阿里云的软件源里面去下载docker,更快)

bash 复制代码
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

4.安装docker即可

arduino 复制代码
apt-get install docker-ce docker-ce-cli containerd.io

5.配置用户组(目的就是以后执行docker命令不需要再重新输入密码操作了)

bash 复制代码
sudo usermod -aG docker $USER
sudo reboot

配置完用户组会黑一下屏,这很正常,等它重启就行了。

接下来检查docker安装是否成功:

arduino 复制代码
systemctl start docker
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
service docker restart
sudo docker run hello-world

然后查看docker版本号:

sudo docker version

这样子就成功了,然后我们配置镜像源即可:

bash 复制代码
sudo vi /etc/docker/daemon.json

然后将下列内容输入进去即可:

json 复制代码
{ 
"registry-mirrors": 
[ 
  "https://docker.m.daocloud.io", 
  "https://noohub.ru", 
  "https://huecker.io", 
  "https://dockerhub.timeweb.cloud", 
  "https://docker.rainbond.cc" 
] 
}

保存之后重启docker即可:

sudo systemctl restart docker

4.打包springboot即可

首先需要在springboot的根目录下创建两个文件,一个是Dockerfile,一个是docker-compose.yml。

Dockerfile

bash 复制代码
# 使用官方的 OpenJDK 11 镜像作为基础镜像
FROM liferay/jdk11

# 设置工作目录
WORKDIR /app

# 将打包好的 JAR 文件复制到镜像中
COPY my-springboot-app.jar app.jar

# 暴露应用程序端口
EXPOSE 8080

# 启动命令
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

docker-compose.yml

yaml 复制代码
version: '3.8'

services:
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

  redis:
    image: redis:alpine
    ports:
      - "6379:6379"

  app:
    build: .
    depends_on:
      - db
      - redis
    ports:
      - "8080:8080"
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=UTC
      SPRING_DATASOURCE_USERNAME: ${MYSQL_USER}
      SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD}
      SPRING_REDIS_HOST: redis
      SPRING_REDIS_PORT: 6379

volumes:
  db_data:

为了保险起见还需要创建一个.env文件,如下:

ini 复制代码
MYSQL_ROOT_PASSWORD=your_strong_root_password
MYSQL_DATABASE=myappdb
MYSQL_USER=myappuser
MYSQL_PASSWORD=your_strong_user_password

这样子Docker Compose会自动读取同一目录下的.env文件里面的环境变量。

然后运行命令mvn clean package将springboot项目打包,这时候我们的target目录下会有个jar包,我们将jar包,Dockerfile文件和docker-compose文件上传到虚拟机即可。

4.运行docker

输入以下命令即可:

bash 复制代码
# 下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')" /usr/local/bin/docker-compose

# 应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证 Docker Compose 是否安装成功
docker-compose --version

然后进入到有jar包的目录里面即可,运行命令

perl 复制代码
docker build -t my-springboot-app .

出现上面情况就说明成功了。

然后再构建docker容器,执行以下命令:

bash 复制代码
# 构建镜像并启动服务
sudo docker-compose up --build -d

上面--build不写也行,这个作用是已有镜像也要重新构建,-d则是指在后台运行容器。

如下图所示代表成功了。

然后我们去查看下容器日志即可,报错也可以看到:

bash 复制代码
# 查看容器日志
sudo docker-compose logs -f app
相关推荐
栗豆包9 分钟前
w118共享汽车管理系统
java·spring boot·后端·spring·tomcat·maven
万亿少女的梦16821 分钟前
基于Spring Boot的网络购物商城的设计与实现
java·spring boot·后端
开心工作室_kaic2 小时前
springboot485基于springboot的宠物健康顾问系统(论文+源码)_kaic
spring boot·后端·宠物
0zxm2 小时前
08 Django - Django媒体文件&静态文件&文件上传
数据库·后端·python·django·sqlite
@泽栖4 小时前
Docker 常用命令
运维·服务器·docker
鲁正杰6 小时前
在一个服务器上抓取 Docker 镜像并在另一个服务器上运行
运维·服务器·docker
老大白菜7 小时前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
刘大辉在路上9 小时前
突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除
git·后端·gitlab·版本管理·源代码管理
VinciYan10 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
tntlbb11 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器