docker中安装seata,以nacos为配置中心

这篇具有很好参考价值的文章主要介绍了docker中安装seata,以nacos为配置中心。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境

docker23.0.3
nacos2.2.1

二、拉取seata镜像

1、查看seata有哪些镜像

使用如下命令查看seata有哪些镜像:

docker search seata

docker安装seata,服务器,docker,容器,运维

可以看到有很多seata镜像,一般选择stars最高的那个,就是seataio/seata-server。

2、查看原来有没有seata镜像

使用如下命令查看本地镜像:

docker images

docker安装seata,服务器,docker,容器,运维

可以看到我这里是有一份seata镜像的,使用如下命令删除:

docker rmi -f "IMAGE ID"

这是我的

docker rmi -f 67a654ca2e05

docker安装seata,服务器,docker,容器,运维

3、拉取最新版本

拉取最新版本的镜像直接使用如下命令:

docker pull seataio/seata-server

docker安装seata,服务器,docker,容器,运维

拉取的过程需要点时间,耐心等待即可。

结束后可以看看拉取的结果,命令如下:

docker images

docker安装seata,服务器,docker,容器,运维

4、拉取指定版本

假如我想要拉取 1.6.1 版本的seata,可以使用如下命令:

docker pull seataio/seata-server:1.6.1

docker安装seata,服务器,docker,容器,运维

同样,查看一下拉取成功没有:

docker images

docker安装seata,服务器,docker,容器,运维

拉取成功,后面就用 1.6.1 版本的镜像。

三、配置seata

1、创建seata相关的数据库

数据库脚本地址:

https://github.com/apache/incubator-seata/tree/master/script/server/db

docker安装seata,服务器,docker,容器,运维

用的是哪个数据库就选择哪个数据库的脚本,我这里用的mysql的。

创建一个数据库,执行脚本即可,我的数据库名为 cj-seata 。

docker安装seata,服务器,docker,容器,运维

2、创建seata配置文件目录

我目录为 /www/wwwroot/changjing/docker/seata ,命令如下:

mkdir -p /www/wwwroot/changjing/docker/seata

docker安装seata,服务器,docker,容器,运维

3、启动seata容器

这里只是简单启动,为了获得seata容器最初的配置文件,后面经过修改后从宿主机挂载到容器,命令如下:

docker run -d --name seata -p 7091:7091 seataio/seata-server:1.6.1

docker安装seata,服务器,docker,容器,运维

4、复制seata容器下的配置文件到宿主机

复制配置文件的命令如下:

docker cp seata:/seata-server/resources /www/wwwroot/changjing/docker/seata

docker安装seata,服务器,docker,容器,运维

到宿主机的配置文件目录看一下

docker安装seata,服务器,docker,容器,运维

可以看到配置文件已经拿下来了,主要修改的就是这个配置文件。

为了防止操作失误,可以先备份一份,命令如下:

cp application.yml application_bk.yml

docker安装seata,服务器,docker,容器,运维

5、配置yml文件

修改的是application.yml文件,修改内容如下:

docker安装seata,服务器,docker,容器,运维

这是完整的配置:

#  Copyright 1999-2019 Seata.io Group.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848   # nacos的访问地址,因为是在docker中,ip地址改为宿主机地址
      namespace:
      group: SEATA_GROUP  # nacos的分组
      username: nacos     # nacos的用户名
      password: nacos     # nacos的密码
      context-path:
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key:
      #secret-key:
      data-id: seata.properties  # nacos中的配置文件名称
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server       # seata启动后在nacos的服务名
      server-addr: 127.0.0.1:8848  # nacos的访问地址,因为是在docker中,ip地址改为宿主机地址
      group: SEATA_GROUP   # nacos的分组
      namespace:
      cluster: default     # 这个歌参数在每个微服务seata时会用到
      username: nacos      # nacos的用户名
      password: nacos      # nacos的密码
      context-path:
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key:
      #secret-key:
  store:    
    # support: file 、 db 、 redis
    mode: db
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/cj-seata?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false
      user: root
      password: 123456
      min-conn: 10
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 1000
      max-wait: 5000
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

6、在nacos中增加seata配置

docker安装seata,服务器,docker,容器,运维

完整内容如下:

service.vgroupMapping.ruoyi-system-group=default   # 这个在微服务版的若依中使用seata的服务中会用到
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/cj-seata?useUnicode=true
store.db.user=root
store.db.password=123456
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000

7、重启seata

前面为了拿到配置文件,简单启动了一下seata容器,需要把前面那个停止并删除。

docker安装seata,服务器,docker,容器,运维

停止seata命令如下:

docker stop "容器ID或者容器名称"

这是我的:

docker stop seata

docker安装seata,服务器,docker,容器,运维

删除命令如下:

docker rm -f "容器ID或者容器名称"

这是我的:

docker rm -f seata

docker安装seata,服务器,docker,容器,运维

启动命令如下:

docker run -d --name seata \
-p 8091:8091 \
-p 7091:7091 \
-e SEATA_IP=127.0.0.1 \
-v /www/wwwroot/changjing/docker/seata/resources:/seata-server/resources \
seataio/seata-server:1.6.1

解释:

docker run -d --name seata \                                                       -d 表示运行在后台,--name 指定名称为seata
-p 8091:8091 \                                                                     这是后面需要注册到nacos的seata服务端口号
-p 7091:7091 \                                                                     这是seata的客户端端口号
-e SEATA_IP=127.0.0.1 \                                                            这是seata注册到nacos中的 IP ,可以解决Java程序连不上seata客户端的问题,默认为运行docker容器的内网地址
-v /www/wwwroot/changjing/docker/seata/resources:/seata-server/resources \         seata 配置文件目录,“:”前为服务器目录,“:”后为seata容器中的目录
seataio/seata-server:1.6.1                                                         指定 docker seata 版本,这里是1.6.1版本

docker安装seata,服务器,docker,容器,运维

然后就可以在项目中使用seata了。文章来源地址https://www.toymoban.com/news/detail-856877.html

到了这里,关于docker中安装seata,以nacos为配置中心的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 通过 Docker 部署 Nacos 2.2.3 服务发现与配置中心

    名称 版本 IP 端口 Nacos 2.2.3 192.168.10.21 8848、9848 MySQL 8.0.27 192.168.10.20 3306 创建名为 nacos_config 数据库 执行以下 SQL 脚本完成数据表的创建 , Nacos 2.2.3 的数据库在线脚本👉🏻 nacos-db.sql 👈🏻 1. 创建挂载目录 2. 下载镜像 访问 https://hub.docker.com/r/nacos/nacos-server/tags 获取 Nacos 镜像

    2024年02月07日
    浏览(46)
  • 在docker中安装Elasticsearch容器,并且阿里云服务器配置

    1、拉取Elasticsearch镜像 2、启动Elasticsearch容器  访问:IP访问地址:9200    

    2024年02月13日
    浏览(36)
  • 在服务器的docker容器中安装Anaconda配置环境以及使用编程工具远程连接环境

    一、连接服务器下载Anaconda 3 使用win+r输入cmd打开命令行,在命令行中输入ssh -p xxxxx(你的端口号如10101,下图红色部分)  root@xxx.xxx.xxx.xxx(服务器ip地址下图蓝色部分)   第一次连接时,连接没问题会出现Are you sure you want to continue connecting (yes/no/[fingerprint])?之后就不会出现了。 输

    2024年02月03日
    浏览(37)
  • 安装Docker&使用Docker安装部署MySQL,Redis,RabbitMQ,Nacos,Seata,Minio

    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine sudo yum remove -y yum-utils sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 如果这一步报错,说尝试其他镜像的话,执行下面步骤

    2024年02月05日
    浏览(37)
  • Nacos配置中心中配置文件的创建、微服务读取nacos配置中心

    在企业项目中会有非常多的服务,不同的开发环境还有不同的配置文件,所以就导致配置文件非常多。 那么肯定就会有一些公共配置,多个服务都是使用过一样的,那么就可以使用配置中心来进行统一管理,避免修改一个配置项要去各个服务都改一遍。 使用传统方式的配置

    2024年02月02日
    浏览(30)
  • 【Linux】Centos 8 服务器部署:docker 安装 jdk、nginx、nacos、redis、Sentinel Dashboard

    目录 一、安装软件 (1)全部安装命令 (2)安装:jdk (3)安装:nginx  (4)安装:nacos (5)安装:redis (6)安装:Sentinel Dashboard 二、开放端口 三、启动软件  (1)启动:nacos (2)启动:nginx (3)启动:redis (4)启动:Sentinel Dashboard 四、访问网址  (1)访问:nacos 

    2024年02月06日
    浏览(47)
  • nacos 注册中心服务端配置详解

    Nacos是一个开源的动态服务发现、配置管理和服务管理平台。在使用Nacos作为注册中心时,需要配置Nacos Server的相关参数。 下面是Nacos Server的配置参数详解: nacos.core.default.namespace: Nacos默认的命名空间,用于隔离不同的环境或不同的应用。默认值为public。 nacos.naming.data.warmup

    2024年02月13日
    浏览(31)
  • nacos2.1.1版本,作为注册中心,配置中心如何使用,nacos服务端启动,微服务搭建,nacos集群化部署

    关于nacos 相信大多数人一样,在接触微服务的时候知道有Netflix系列和alibaba系列 但是Netflix这一套如今由于部分组件不在开源,又有alibaba这一套的出现,市面上,alibaba系列微服务架构已经是最火热的了,而nacos则是alibaba系列组件充当服务注册发现和配置中心的角色 说白了,就是将每个

    2024年02月03日
    浏览(34)
  • 基于Dubbo和Nacos搭建微服务的配置中心和服务注册中心

    1.添加nacos依赖 2.配置application.properties PS:nacos2.0除了需要8848的端口之外,还新增了端口+1000的新端口用于客户端和服务端GRPC通信的端口,所以如果是自己部署的nacos需要放开这俩个端口,服务才可以启动成功。 3.配置类 3.1 添加Spring Cloud原生注解 @EnableDiscoveryClient 3.2 客户端服

    2024年02月16日
    浏览(35)
  • 分布式事务篇-2.1 阿里云轻量服务器--Docker--部署Seata

    本文介绍基于Seata 解决分布式事务,Seata 是一个服务所有首先需要对其进行部署。 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 拷贝完毕删

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包