# 升级/迁移 Docker 节点

## 一、准备工作 <a href="#id-4icdn" id="id-4icdn"></a>

<mark style="color:red;">必须先导出原节点私钥！！！</mark>

私钥导出教程：[点击前往](https://wiki.starcoin.movemove.org/kai-shi/jie-dian-yun-xing/yun-xing-docker-jie-dian#ea06b35261c8e025ea9791e1ebea8e9a)

准备好私钥，用于导入节点账号。

## 二、停止原节点 <a href="#ki4nt" id="ki4nt"></a>

<mark style="color:orange;">如果是迁移节点，可跳过该步骤</mark>

停止并删除原节点：

```
$ docker rm -f starcoin-main
```

删除原节点 ipc 文件：

```
$ rm -rf /data/starcoin/main/starcoin.ipc
```

更新最新版的镜像：

```
$ docker pull starcoin/starcoin
```

该步骤操作截图如下：

![](https://954439042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdXzzGpY0VSaA01mucBHD%2Fuploads%2FU3WzMOn4HcTmNkk5NmwB%2F1.png?alt=media\&token=4e46d9eb-451a-4afc-9419-698cbf2decc2)

## 三、启动新节点 <a href="#nvqnh" id="nvqnh"></a>

> 小提示：
>
> * 若无需启动矿池，可以删除 -p 9880:9880，和最后的参数：--stratum-address 0.0.0.0 --stratum-port 9880；
> * -n main：指定主网，测试网可写 barnard；

```shell
# 运行新版本
$ sudo docker run --restart=always \
    --name starcoin-main \
    -d -p 9880:9880 \
    -v /data/starcoin/:/data/starcoin/ \
    starcoin/starcoin \
    /starcoin/starcoin \
    -n main \
    -d /data/starcoin \
    --disable-metrics true \
    --miner-thread 0 \
    --stratum-address 0.0.0.0 --stratum-port 9880

# 查看节点运行状态
$ docker ps -a
```

操作截图：

![](https://954439042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdXzzGpY0VSaA01mucBHD%2Fuploads%2FMZVx2BwwT8gpH4rnUYmf%2F2.png?alt=media\&token=a557598a-d4e4-41cd-8d18-ceb8ad848af8)

## 四、导入私钥并设为默认账号 <a href="#id-29p2e" id="id-29p2e"></a>

检查新版本默认账号：

```
$ docker exec -it starcoin-main /bin/bash

> /starcoin/starcoin --connect /data/starcoin/main/starcoin.ipc console

% account default
```

截图如下：

![](https://954439042-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdXzzGpY0VSaA01mucBHD%2Fuploads%2FZVLohOHJDEH8wHgQWalw%2F3.png?alt=media\&token=fe25e5ae-9146-4f0b-bdf7-1f1dc0277665)

<mark style="color:red;">如果上面的账号是自己之前的，就结束了，如果账号不对，重新设置：</mark>

导入私钥：

```
% account import -i 私钥
```

设置为默认账号：

```
% account default 私钥对应的账号
```
