Docker安装(Docker上部署一个SpringBoot项目含MySql)

本文详细介绍了Docker的安装过程,包括卸载旧版本、配置镜像仓库、安装Docker CE、启动及测试Docker。通过运行`hello-world`验证安装成功。接着展示了如何在Docker上部署MySQL容器,并导入数据库文件。最后,利用Dockerfile构建SpringBoot应用的镜像并运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

官网:https://www.docker.com/
文档:https://docs.docker.com/
hub:https://hub.docker.com/
docker图标

Docker 安装\卸载

安装Docker

/var/lib/docker 是docker默认的安装路径

# 1、卸载旧版本
yum remove docker \
			docker-client \
			docker-client-latest \
			docker-common \
			docker-latest \
			docker-latest-logrotate \
			docker-logrotate \
			docker-engine
                  
# 2、安装
yum install -y yum-utils

# 3、配置镜像仓库(推荐选阿里云镜像,速度快!)
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo # 默认是国外的
    
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 阿里云的
        
# 更新yum软件包索引
yum makecache fast

# 4、安装docker 相关 docker-ce 社区版 docker-ee企业版
yum install docker-ce docker-ce-cli containerd.io

# 5、启动docker
systemctl start docker

# 6、查看docker版本
docker version

安装完成后可以看到docker的版本信息
在这里插入图片描述
接下来测试Docker,运行官方给的hello world示例进行测试(会先在远程仓库拉去镜像,再运行)

# 7、hello world
docker run hello-world

在这里插入图片描述
到这Docker 的安装和测试就已经完成了!!!!!!!!

卸载Docker

# 9、卸载docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

链接: Docker 常用命令.

Docker上部署一个SpringBoot项目(含MySql)

一、先在Docker 上完成 MySql 的启动和配置

拉取 MySql 5.7 版本的镜像

docker pull mysql:5.7

在这里插入图片描述
此时可以在本地的镜像仓库中查看到已经拉取下来的mysql
在这里插入图片描述

运行mysql镜像(创建容器)

docker run -d -p 3306:3306 -v mysql_conf:/etc/mysql/conf.d -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

参数说明:

-d 后台运行
-p 端口映射
-v 卷挂载
-e MYSQL_ROOT_PASSWORD=123456 配置mysql登录密码:[123456]为密码
-name 容器的名字

查看mysql容器已经启动
在这里插入图片描述

导入mysql数据库文件.sql (也可以使用本地工具连接服务器的mysql进行创新数据库)

.sql文件需要保存在mysql容器内部,之前运行时使用了卷挂载的技术,所以将.sql文件放在当前linux系统下的对应目录下,数据即可和容器共享

查看卷挂在的目录
在这里插入图片描述
进入该目录,将.sql文件放到该目录下
在这里插入图片描述
执行容器,进入mysql,导入数据库

docker exec -it mysql01 /bin/bash

在这里插入图片描述
.sql文件已经导入完成。

二、Dockerfile构建(将jar包构建成一个镜像)

项目打包

使用Maven工具打包,先clean --> package
在这里插入图片描述

创建Dockerfile文件

FROM java:8

VOLUME /tmp

ADD application-form-1.0-SNAPSHOT.jar app.jar

EXPOSE 80

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

在这里插入图片描述

上传文件到linux系统上

自己创建一个文件夹,用于保存此项目相关的文件
在这里插入图片描述

构建Dockerfile

docker build -t application-form:1.0 .

后面的 . 不要忘记加

第一次构建需要下载java8环境,会比较慢,运行完成后可以在本地镜像仓库中看到已经构建好的镜像
在这里插入图片描述

运行application-form镜像(创建容器)

docker run -d -p 80:80 --name application-form01 application-form:1.0

在这里插入图片描述

三、在浏览器中查看在这里插入图片描述

用户登录成功,mysql配置没有问题
在这里插入图片描述

### 部署 Spring Boot 应用到 Docker 的步骤 #### 1. 准备工作 在开始部署之前,确保以下条件已经满足: - 安装Docker,并且 Docker 服务正在运行。 - 拥有一个构建好的 Spring Boot 应用程序(通常是一个 `.jar` 文件)。 将 Spring Boot 应用部署Docker 的核心步骤包括:创建 Docker 镜像、运行容器以及处理相关配置[^2]。 #### 2. 编写 Dockerfile Dockerfile 是一个文本文件,包一系列指令用于构建 Docker 镜像。下面是一个适用于 Spring Boot 应用的示例 Dockerfile: ```dockerfile # 使用基础镜像 openjdk:8-oracle FROM openjdk:8-jdk-alpine # 设置维护者信息 MAINTAINER yourname@example.com # 创建临时目录并挂载为 /tmp VOLUME /tmp # 将本地的 jar 包复制到容器中,并重命名为 springboot_docker.jar ADD springboot-api-0.0.1-SNAPSHOT.jar springboot_docker.jar # 运行 jar 包 ENTRYPOINT ["java", "-jar", "springboot_docker.jar"] # 暴露应用的端口(例如 8083) EXPOSE 8083 ``` 上述内容定义了一个简单的流程:使用 OpenJDK 8 作为基础镜像,添加应用程序 JAR 文件,并指定运行命令和暴露端口[^2]。 #### 3. 构建 Docker 镜像 使用 `docker build` 命令基于 Dockerfile 构建镜像: ```bash docker build -t springboot-app . ``` 其中 `-t` 参数指定了镜像的名称(此处为 `springboot-app`),后面的 `.` 表示当前目录是构建上下文。 #### 4. 运行 Docker 容器 构建完成后,可以通过 `docker run` 命令启动容器: ```bash docker run -d -p 8083:8083 springboot-app ``` 参数说明: - `-d`:表示后台运行容器。 - `-p 8083:8083`:将主机的 8083 端口映射到容器的 8083 端口。 此时,Spring Boot 应用已经在 Docker 容器中运行,并且可以通过主机的 8083 端口访问。 #### 5. 使用 Docker Compose 部署 如果需要管理多个服务(例如数据库、微服务等),可以使用 `docker-compose.yml` 文件进行编排。以下是一个简单的示例: ```yaml version: '3' services: springboot-app: image: springboot-app build: . ports: - "8083:8083" environment: - SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/mydatabase - SPRING_DATASOURCE_USERNAME=root - SPRING_DATASOURCE_PASSWORD=password db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: mydatabase ports: - "3306:3306" ``` 此文件定义了两个服务:`springboot-app` 和 `db`。前者是你的 Spring Boot 应用,后者是一个 MySQL 数据库实例。通过 `docker-compose up` 命令即可一键启动整个服务栈[^3]。 #### 6. 验证部署 可以通过以下方式验证部署是否成功: - 访问 `http://localhost:8083/actuator/health`(假设你启用了 Spring Boot Actuator 的健康检查接口)。 - 使用 `docker ps` 查看正在运行的容器。 - 使用 `docker logs <container_id>` 查看容器日志。 #### 7. 其他注意事项 - **环境变量**:可以通过 `-e` 参数传递环境变量给容器,或者在 `docker-compose.yml` 中定义。 - **持久化存储**:如果需要持久化数据,可以使用 `volumes` 挂载主机目录。 - **安全性**:避免在生产环境中使用默认的用户名和密码,建议通过密钥管理工具或环境变量注入敏感信息。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值