Docker的基本使用和SpringBoot项目部署,java高级知识体系

本文详细介绍了Docker的安装步骤,包括启用与启动Docker、配置镜像加速、基本命令使用等。接着演示了如何在Docker中安装MySQL并设置远程访问权限,以及如何部署Springboot项目,包括修改pom文件、创建Dockerfile、构建并运行镜像。最后,解决了Docker网络问题并提供了保存镜像到远程仓库的方法。
摘要由CSDN通过智能技术生成

yum install docker

4、启动docker

systemctl enable docker

systemctl start docker

5、查看安装结果

docker version

6、配置镜像

加速镜像下载,创建或修改 /etc/docker/daemon.json 文件,修改为如下形式

{

“registry-mirrors”: [

“https://registry.docker-cn.com”,

“http://hub-mirror.c.163.com”,

“https://docker.mirrors.ustc.edu.cn”

]

}

7、重启

systemctl restart docker

4、Docker的基本使用

===========================================================================

常用Docker命令

docker images 查看镜像

docker search 镜像名称 搜索镜像

docker ps 查看容器

docker stop 容器id 停止容器

docker rm 容器id 删除容器

docker rmi 镜像id 删除镜像

docker run 镜像id 运行镜像

docker pull 镜像名 拉取镜像

docker build 镜像名 . 创建镜像

1) 抓取仓库

docker pull library/hello-world

2) 查看镜像

docker images

4) 运行镜像

docker run hello-world

在这里插入图片描述

5、Docker安装MySQL

=============================================================================

1)安装MySQL

docker pull mysql:5.7

2)运行MySQL镜像

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql镜像ID

-p 后面的端口是本机端口,映射到docker中MySQL的3306端口,后面设置了root密码

-d 是后台运行

3)查看容器ID

docker ps

在这里插入图片描述

4)上传数据库脚本到Linux,然后将脚本复制到docker的root目录中

docker cp bookdb.sql 21db7dd6618e:\root

5)进入docker容器

docker exec -it 21db7dd6618e bash

6)进入MySQL

mysql -uroot -p123456

7)设置编码、创建数据库

set names utf8;

create database bookdb;

use bookdb;

8)导入sql脚本

source /root/bookdb.sql;

9)修改远程访问权限:

select host,user,plugin,authentication_string from mysql.user;

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

flush privileges;

  1. 退出mysql和docker

exit

6、在Docker上部署Springboot项目

======================================================================================

1)修改pom文件

首先在springboot项目的pom.xml文件中添加Docker镜像名称:

<docker.image.prefix>springboot</docker.image.prefix>

在plugin中添加docker构建插件:

org.springframework.boot

spring-boot-maven-plugin

com.spotify

docker-maven-plugin

1.0.0

d o c k e r . i m a g e . p r e f i x / {docker.image.prefix}/ docker.image.prefix/{project.artifactId}

src/main/docker

/

${project.build.directory}

${project.build.finalName}.jar

2) 创建Dockerfile文件

FROM java:8

VOLUME /tmp

COPY jar文件名 app.jar

RUN bash -c “touch /app.jar”

EXPOSE 8080

ENTRYPOINT [“java”, “-jar”, “app.jar”, “–spring.profiles.active=test”, “–server.port=8080”, “> /log/app.log”]

内容讲解:

FROM java:8是获取到远程仓库的jdk1.8镜像。

VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp。

将项目的jar文件复制为app.jar添加到容器

RUN表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像。这里使用touch命令来改变文件的修改时间,Docker创建的所有容器文件默认状态都是“未修改”。这对于简单应用来说不需要,不过对于一些静态内容(比如:index.html)的文件就需要一个“修改时间”。

EXPOSE 容器暴露端口

ENTRYPOINT 应用启动命令 参数设定

3) 创建docker文件夹,将jar包与Dockerfile移动到该文件夹,进入该文件夹,运行命令:

docker build -t 镜像名称 .

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

4) 查看镜像

docker images

5)运行镜像

docker run --rm -p 8080:8080 --link mysql容器ID:localhost docker镜像名称或ID

–rm 表示容器会自动删除

-p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号

-d表示后台运行

–link 表示连接mysql容器(如果项目不需要数据库,可以去掉),冒号左边是mysql容器的id后面是容器的别名,这样jdbcUrl中配置的localhost会转换到mysql的docker容器上

6) 解决Docker不能联网问题

启动项目后如果出现下面提示,表示Docker的网络出现问题

在这里插入图片描述

解决方法

vi /etc/sysctl.conf

添加ipv4转发

net.ipv4.ip_forward=1

重启网络

service network restart

重新启动Docker镜像后通过浏览器测试

在这里插入图片描述

7) 保存镜像到远程仓库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速部署分布式应用。通过 Docker Compose,我们可以定义和运行多个 Docker 容器,并通过一个 YAML 文件来配置需要的服务。 下面是使用 Docker Compose 部署 Spring Boot 项目的简单步骤: 1. 编写 Dockerfile 在 Spring Boot 项目的根目录下创建一个名为 Dockerfile 的文件,并添加以下内容: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE ADD ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ``` 2. 编写 docker-compose.yml 文件 在 Spring Boot 项目的根目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容: ``` version: '3' services: app: image: your-image-name build: context: . dockerfile: Dockerfile ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prod restart: always ``` 其中,your-image-name 是自定义的镜像名称,需要在构建镜像时使用。 3. 构建镜像 在 Spring Boot 项目的根目录下执行以下命令,构建镜像: ``` docker build -t your-image-name . ``` 4. 启动容器 在 Spring Boot 项目的根目录下执行以下命令,启动容器: ``` docker-compose up -d ``` 5. 查看容器状态 执行以下命令查看容器状态: ``` docker-compose ps ``` 至此,你已经成功使用 Docker Compose 部署了 Spring Boot 项目。如果需要停止容器,可以执行以下命令: ``` docker-compose stop ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值