1. 获取镜像
# 查看可用的稳定版本
sudo docker search seata
sudo docker pull seataio/seata-server:1.3.0
sudo docker image ls |grep seata
2. 创建数据卷
sudo mkdir -p /home/seata/conf
# 赋予data目录读写权限
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” } }
- **配置文件(file.conf)**
```groovy
service {
#transaction service group mapping
vgroupMapping.my_test_tx_group = "default"
#only support when registry.type=file, please don't set multiple addresses
default.grouplist = "127.0.0.1:8091"
#disable seata
disableGlobalTransaction = false
}
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