当前位置: 首页 > news >正文

docker方式项目部署(安装容器组件+配置文件导入Nacos+dockerCompose文件创建管理多个容器+私有镜像仓库Harbor)

基于docker的部署

  • 服务器主机ip 192.168.6.131

在这里插入图片描述

安装组件

安装redis

docker pull redis:7.0.10#在宿主机上/var/lib/docker/volumes/redis-config/_data/目录下创建一个redis配置文件
vim redis.conf#内容如下
appendonly yes #开启持久化
port 6379
#requirepass 1234 #密码可以省略
bind 0.0.0.0
#-----------------------------------------------#如果/var/lib/docker/volumes没有redis-config,创建数据卷
docker volume create redis-config#容器启动
docker run -d -p 6379:6379 --restart=always -v redis-config:/etc/redis/config -v redis-data:/data --name redis redis redis-server /etc/redis/config/redis.conf#查看运行中的容器
docker ps

安装mysql

docker pull mysql:8.0.30docker run -d --name mysql -p 3306:3306 -v mysql_data:/var/lib/mysql -v mysql_conf:/etc/mysql --restart=always --privileged=true -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.30

Linux下mysql -uroot -p 登录数据库,然后执行以下sql

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

然后重新配置SQLyog工具,进行连接,则可以连接成功

安装nacos

docker pull nacos/nacos-server:v2.2.2docker run --name nacos -e MODE=standalone -p 8848:8848 -p 9848:9848 -d nacos/nacos-server:v2.2.2# nacos2.x版本新增了一个客户端与服务端的gRPC的通讯端口号9848

打开浏览器访问nacos所提供的后端管理界面:http:ip:8848/nacos
在这里插入图片描述

将配置文件导入Nacos

①、项目中引入依赖

spring-cloud-starter-alibaba-nacos-config

②、添加nacos配置文件
在这里插入图片描述
在这里插入图片描述
将模块中的配置文件application-dev.yml内容复制到上述中nacos中创建按好的service-user-dev.yaml中
在这里插入图片描述

③、模块中的application.yml

  • 配置中心的地址
spring:cloud:nacos:server-addr: 192.168.6.131:8848 # nacos所在服务器的地址config:import:- nacos:service-user-dev.yml #可以添加多个配置文件

docker compose

  • 通过yml文件的方式定义
  • 将每个容器的“拉取、创建”等冗余操作简化,通过命令出啊关键或者管理
    在这里插入图片描述

①、下载与安装

在安装docker的时候已经完成了安装

yum install -y dicjer-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugindocker compose version

或者单独安装

mkdir -p /usr/local/lib/docker/cli-plugins#下载并移动
curl -SL https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose#给docker-compose文件赋予可执行权限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose#查看docker compose版本
docker compose version

②、使用docker compose部署Redis

docker-compose.yml文件

services:redis:image: redis:7.0.10container_name: redis02ports:- "6389:6379"volumes:- redis-data:/data
volumes:redis-data: {}

docker compose命令
在这里插入图片描述

③、多容器配置案例

  • 通过命令启动,可以启动多个容器

在这里插入图片描述

docker镜像仓库

在这里插入图片描述
私有仓库种类:

  • Registry是Docker自带的镜像仓库,部署运行简洁,适合测试时使用
  • Harbor

Harbor

①、下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②、上传到linux中,解压并修改配置文件

在这里插入图片描述
在这里插入图片描述

③、安装Harbor

在这里插入图片描述
在这里插入图片描述

④、启动关闭
在这里插入图片描述

⑤、访问Harbor
在这里插入图片描述
在这里插入图片描述

⑥、docker添加安全访问权限
在这里插入图片描述

项目部署

  • 基于docker环境及Harbor部署,以service-user模块为例

在这里插入图片描述

①、maven安装目录下的setting文件中配置harbor镜像私有仓库的账号信息
在这里插入图片描述

在这里插入图片描述

②、在service-user模块的依赖中,引入依赖插件

  • 在docker主机上构建docker对应的镜像,然后将构建的镜像推送到harbor仓库

在这里插入图片描述

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.2</version><!--将插件绑定在某个phase执行--><executions><execution><id>build-image</id><!--将插件绑定在package这个phase阶段,只要执行mvn package自动执行mvn docker:build--><phase>package</phase><goals><goal>build</goal><goal>push</goal></goals></execution></executions><configuraion><serverId>harbor</serverId><registryUrl>http://${docker.repostor}</registryUrl><!--docker主机地址--><dockerHost>http://192.168.6.131:2375</dockerHost><!--一键生成的镜像--><imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}</imageName><!--指定dockerfile路径--><dockerDirectory>${project.basedir}</dockerDirectory><!--是否跳过docker构建--><skipDockerBuild>false</skipDockerBuild></configuration></plugin></plugins>
</build>

③、docker服务端开启远程访问
在这里插入图片描述

④、编写dockerfile文件

在这里插入图片描述

在这里插入图片描述

所在的模块下创建dockerfile文件
在这里插入图片描述
在这里插入图片描述

⑤、执行maven打包命令

先在私有库中创建项目
在这里插入图片描述

在这里插入图片描述

⑥、拉取镜像

使用docker compose部署,在Linux中创建service-user.yml文件,内容如下
在这里插入图片描述
在这里插入图片描述

通过命令启动
在这里插入图片描述

相关文章:

  • 循环神经网络 - 门控循环单元网络
  • LanDiff:赋能视频创作,语言与扩散模型的融合力量
  • 波束形成(BF)从算法仿真到工程源码实现-第八节-波束图
  • 【云平台监控】安装应用Ansible服务
  • 【Ansible自动化运维】六、ansible 实践案例与最佳实践:经验总结与分享
  • 未来七轴机器人会占据主流?深度解析具身智能方向当前六轴机器人和七轴机器人的区别,七轴力控机器人发展会加快吗?
  • AndroidStudio编译报错 Duplicate class kotlin
  • Uniapp: 修改启动时的端口号
  • 聊透多线程编程-线程池-9.C# 线程同步实现方式
  • Windows系统docker desktop安装(学习记录)
  • C++23 新特性:[[assume(expression)]] 属性
  • FileWriter 详细解析与记忆方法
  • 用 Deepseek 写的uniapp血型遗传查询工具
  • VRoid-Blender-Unity个人工作流笔记
  • 相机内外参
  • 苍穹外卖3
  • 某车企面试备忘
  • 打造AI应用基础设施:Milvus向量数据库部署与运维
  • PyTorch梯度:深度学习的引擎与实战解析
  • Git报错remote: Verify fatal: Authentication failed for ***
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 中美发布日内瓦经贸会谈联合声明达成关税共识,外交部回应
  • 外交部就习近平主席将出席中拉论坛第四届部长级会议开幕式介绍情况
  • 洗冤录|县令遇豪强:黄榦处理的一起地产纠纷案
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • 临港新片区:发布再保险、国际航运、生物医药3个领域数据出境操作指引