赞
踩
docker23.0.3
nacos2.2.1
使用如下命令查看seata有哪些镜像:
docker search seata
可以看到有很多seata镜像,一般选择stars最高的那个,就是seataio/seata-server。
使用如下命令查看本地镜像:
docker images
可以看到我这里是有一份seata镜像的,使用如下命令删除:
docker rmi -f "IMAGE ID"
这是我的
docker rmi -f 67a654ca2e05
拉取最新版本的镜像直接使用如下命令:
docker pull seataio/seata-server
拉取的过程需要点时间,耐心等待即可。
结束后可以看看拉取的结果,命令如下:
docker images
假如我想要拉取 1.6.1 版本的seata,可以使用如下命令:
docker pull seataio/seata-server:1.6.1
同样,查看一下拉取成功没有:
docker images
拉取成功,后面就用 1.6.1 版本的镜像。
数据库脚本地址:
https://github.com/apache/incubator-seata/tree/master/script/server/db
用的是哪个数据库就选择哪个数据库的脚本,我这里用的mysql的。
创建一个数据库,执行脚本即可,我的数据库名为 cj-seata 。
我目录为 /www/wwwroot/changjing/docker/seata ,命令如下:
mkdir -p /www/wwwroot/changjing/docker/seata
这里只是简单启动,为了获得seata容器最初的配置文件,后面经过修改后从宿主机挂载到容器,命令如下:
docker run -d --name seata -p 7091:7091 seataio/seata-server:1.6.1
复制配置文件的命令如下:
docker cp seata:/seata-server/resources /www/wwwroot/changjing/docker/seata
到宿主机的配置文件目录看一下
可以看到配置文件已经拿下来了,主要修改的就是这个配置文件。
为了防止操作失误,可以先备份一份,命令如下:
cp application.yml application_bk.yml
修改的是application.yml文件,修改内容如下:
这是完整的配置:
# 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
完整内容如下:
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
前面为了拿到配置文件,简单启动了一下seata容器,需要把前面那个停止并删除。
停止seata命令如下:
docker stop "容器ID或者容器名称"
这是我的:
docker stop seata
删除命令如下:
docker rm -f "容器ID或者容器名称"
这是我的:
docker rm -f seata
启动命令如下:
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版本
然后就可以在项目中使用seata了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。