docker安装seata

1. 官方指南

地址:SEATA官方部署指南

可以根据自己情况配置安装,下面是根据官方指南简单示例安装教程

本地环境:

Vmware CentOS 7 : 192.168.7.100

2. 拉取镜像

选择合适的版本下载(自行判断需求版本),docker命令:

docker pull seataio/seata-server:1.2.0

查看拉取的镜像:

[root@xxx seata-config]# docker images | grep seata*
docker.io/seataio/seata-server            1.2.0                       0e583569b94c        6 months ago        150 MB

可以看见拉取下来的150MB的seata镜像(docker.io/seataio/seata-server:1.2.0

3.创建容器并启动

下面2种方式二选一,根据实际情况配置即可,建议使用挂载自定义配置配置文件启动,不然在容器内修改配置文件不太爽

3.1 不使用自定义配置文件创建、启动

快速开始:

docker run --name seata-server \
        -p 8091:8091 \
        -e SEATA_IP=192.168.7.100 \
        -e SEATA_PORT=8091 \
        docker.io/seataio/seata-server:1.2.0

3.2 使用自定义配置文件创建、启动(推荐)

宿主机中创建配置文件映射目录/usr/local/mydocker/seata/seata-config(可自定义):

mkdir /usr/local/mydocker/seata/seata-config

该目录下存放registry.conffile.conf2个文件,将被挂载到seata容器中相应的目录

avatar

registry.conffile.conf2个文件的文件模板可以通过创建临时的seata镜像对象,进入容器内部后,利用docker cp命令复制容器内/seata-server/resources/目录下的文件到宿主机;或者通过网络上搜索模板即可(GITHUB参考模板

在刚刚新建的目录/usr/local/mydocker/seata/seata-config新增registry.conffile.conf2个文件

  • registry.conf文件
registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  # 以上注册中心自己根据实际情况选择,这里以eureka为例(示例eureka地址:192.168.43.17:8761)
  type = "eureka"
  
  eureka {
    serviceUrl = "http://192.168.43.17:8761/eureka"
    application = "seata-server"
    weight = "1"
  }

}
# registry.conf.type=file时有效
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "file"
  file {
    name = "file:/root/seata-config/file.conf"
  }
}
  • file.conf文件
## transaction log store, only used in seata-server
store {
  ## store mode: file、db
  mode = "file"

  ## file store property
  file {
    ## store location dir
    dir = "sessionStore"
    # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
    maxBranchSessionSize = 16384
    # globe session size , if exceeded throws exceptions
    maxGlobalSessionSize = 512
    # file buffer size , if exceeded allocate new buffer
    fileWriteBufferCacheSize = 16384
    # when recover batch read size
    sessionReloadReadSize = 100
    # async, sync
    flushDiskMode = async
  }
}

创建并启动容器:

docker run -d --name seata-server \
	-p 8091:8091 \
	-e SEATA_IP=192.168.7.100 \
    -e SEATA_PORT=8091 \
	-e STORE_MODE=file \
	--network=host \
	-e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
	-v /usr/local/mydocker/seata/seata-config:/root/seata-config  \
	--privileged=true \
	docker.io/seataio/seata-server:1.2.0

注意事项:

以file模式为例:

  • registry.conf文件的config.file.name的路径是容器内/root/seata-config/目录,且以file:开头,即如下格式:

    config {
      file {
        name = "file:/root/seata-config/file.conf"
      }
    }
    
  • --privileged=true 增加获取宿主机root权限(特殊权限)

  • --network=host 网络共享

    环境变量参考

    变量名称 描述
    SEATA_IP 可选, 指定seata-server启动的IP, 该IP用于向注册中心注册时使用, 如eureka等
    SEATA_PORT 可选, 指定seata-server启动的端口, 默认为 8091
    STORE_MODE 可选, 指定seata-server的事务日志存储方式, 支持db ,file,redis(Seata-Server 1.3及以上版本支持), 默认是 file
    SERVER_NODE 可选, 用于指定seata-server节点ID, 如 1,2,3..., 默认为 根据ip生成
    SEATA_ENV 可选, 指定 seata-server 运行环境, 如 dev, test 等, 服务启动时会使用 registry-dev.conf 这样的配置
    SEATA_CONFIG_NAME 可选, 指定配置文件位置, 如 file:/root/registry, 将会加载 /root/registry.conf 作为配置文件,如果需要同时指定 file.conf文件,需要将registry.confconfig.file.name的值改为类似file:/root/file.conf

4. 查看容器状态

docker命令:

docker ps | grep sea*

如下图:

avatar

Eureka注册中心查看,如下图:

avatar

可以看见名叫“seata-server”的实例,和registry.conf文件中配置的实例ID一样

经过案例测试,搭建单实例成功

附:SEATA Demo官方演示案例

posted @ 2020-11-18 22:13  youngyajun  阅读(3979)  评论(1编辑  收藏  举报