1. 获取镜像

  1. # 查看可用的稳定版本
  2. sudo docker search seata
  3. sudo docker pull seataio/seata-server:1.3.0
  4. sudo docker image ls |grep seata

2. 创建数据卷

  1. sudo mkdir -p /home/seata/conf
  2. # 赋予data目录读写权限
  3. sudo chmod 777 /home/seata/conf
  • 配置文件(registry.conf) ```groovy registry {

    file 、nacos 、eureka、redis、zk、consul、etcd3、sofa

    type = “nacos”

    nacos { application = “seata-server” serverAddr = “192.168.10.10:8848” namespace = “ac30071d-5131-4ade-b061-fbbaf213db72” group = “SEATA_GROUP” cluster = “default” username = “nacos” password = “nacos” } eureka { serviceUrl = “http://localhost:8761/eureka“ application = “default” weight = “1” } redis { serverAddr = “localhost:6379” db = “0” } zk { cluster = “default” serverAddr = “127.0.0.1:2181” sessionTimeout = 6000 connectTimeout = 2000 } consul { cluster = “default” serverAddr = “127.0.0.1:8500” } etcd3 { cluster = “default” serverAddr = “http://localhost:2379“ } sofa { serverAddr = “127.0.0.1:9603” application = “default” region = “DEFAULT_ZONE” datacenter = “DefaultDataCenter” cluster = “default” group = “SEATA_GROUP” addressWaitTime = “3000” } file { name = “file.conf” } }

config {

file、nacos 、apollo、zk、consul、etcd3

type = “file”

nacos { serverAddr = “localhost” namespace = “” group = “SEATA_GROUP” } consul { serverAddr = “127.0.0.1:8500” } apollo { appId = “seata-server” apolloMeta = “http://192.168.1.204:8801“ namespace = “application” } zk { serverAddr = “127.0.0.1:2181” sessionTimeout = 6000 connectTimeout = 2000 } etcd3 { serverAddr = “http://localhost:2379“ } file { name = “file.conf” } }

  1. - **配置文件(file.conf)**
  2. ```groovy
  3. service {
  4. #transaction service group mapping
  5. vgroupMapping.my_test_tx_group = "default"
  6. #only support when registry.type=file, please don't set multiple addresses
  7. default.grouplist = "127.0.0.1:8091"
  8. #disable seata
  9. disableGlobalTransaction = false
  10. }

3. 启动容器

sudo docker run -d -p 8091:8091 --name seata \
  -e SEATA_IP=${Seata IP} \
  -e SEATA_PORT=8091 \
  -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
  -v /home/seata/conf:/root/seata-config \
seataio/seata-server:1.3.0

# 参数说明
  ○ -d  后台运行容器,也可以使用镜像id
  ○ -p  将容器的端口映射到本机的端口
  ○ -e  SEATA_IP(可选), 指定seata-server启动的IP, 该IP用于向注册中心注册时使用, 如nacos等
  ○ -e  SEATA_PORT(可选), 指定seata-server启动的端口, 默认为8091
  ○ -e  SEATA_CONFIG_NAME(可选), 指定配置文件位置, 如file:/root/registry, 将会加载/root/registry.conf作为配置文件
  ○ -v  将宿主机目录挂载至容器
  ○ --name 指定容器的名称

sudo docker start seata
sudo docker restart seata
sudo docker stop seata
sudo docker rm seata

4. 验证

sudo docker logs seata
sudo docker exec -it seata /bin/bash