基于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文件,内容如下
通过命令启动