首页 文章 在Docker中部署甜糖

在Docker中部署甜糖

甜糖 2026-07-07 05:43:30

广告

在大部分类Linux系统中,我们可以通过Docker的方式来部署甜糖。使用Docker部署甜糖的优点在于:

  1. 兼容性高,不管是在x86上常见的Ubuntu、CentOs,还是盒子的Openwrt、Armbian系统都能用同样的命令部署;

  2. 对物理机系统影响很小,不用时卸载也非常方便;

  3. Docker自带开机启动、升级等功能,可以限制cpu、内存的资源占用。

对于使用Nas、爱快等设备的用户,我们建议直接通过系统提供的管理后台界面部署Docker。该教程主要针对使用命令行部署Docker的方式。

一、安装Docker

不同的Linux系统安装Docker的命令稍有区别,大家可以通过搜索引擎查找一下。这里简单举几个例子。

CentOS

yum -y install docker-ce

Ubuntu

apt-get install docker-ce

二、选择缓存目录

通常我们会选择一个目录来缓存甜糖的数据。推荐使用固态硬盘作为缓存盘,能获得更高的评级。100Mbps的带宽必须使用固态硬盘或内emmc、ufs存储。 我们可以通过该命令查看当前挂载的磁盘情况。lsblk

Reflectly hero image

如上图,我们有个59.5G的磁盘,路径在 /mnt/mmcblk0p1 ,我们可以把缓存目录设置在这里。如果你插上存储设备,但是在MOUNTPOINT这里并没有显示路径,那代表你的设备没有自动挂载成功存储设备,此时我们就必须手动挂载存储设备,以让我们能使用该设备。

  1. 先确保U盘/硬盘已经格式化;

  2. 使用mkdir命令新建文件夹用作挂载路径(如上图,我们新建了个目录路径在/mnt/mmcblk0p1);

  3. 使用mount命令挂载存储设备到该文件夹。

三、拉取镜像并部署甜糖Docker实例

  docker run -d \
  -v /mnt/mmcblk0p1:/mnt/data/ttnode \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /proc:/host/proc:ro \
  --name ttnode \
  --hostname ttnode \
  --device /dev/mem \
  --cap-add SYS_RAWIO \
  --privileged \
  --net=host \
  --restart=always \
  -e container_name=ttnode \
  registry.cn-hangzhou.aliyuncs.com/tiptime/ttnode:latest

也可以复制以下命令部署

docker run -d  -v /mnt/mmcblk0p1:/mnt/data/ttnode  -v /var/run/docker.sock:/var/run/docker.sock  -v /proc:/host/proc:ro   --name ttnode  --hostname ttnode --device /dev/mem --cap-add SYS_RAWIO --privileged  --net=host  --restart=always -e container_name=ttnode  registry.cn-hangzhou.aliyuncs.com/tiptime/ttnode:latest

参数解释

  • -v /mnt/mmcblk0p1:/mnt/data/ttnode这里的/mnt/mmcblk0p1改为你的设备的缓存目录

  • -v /var/run/docker.sock:/var/run/docker.sock支持自动更新,不设置则需要手动更新镜像

  • --name ttnode容器名称,建议自行修改个比较独特的容器名称,尽量不与他人重复,避免冲突

  • -e container_name=ttnode容器名称,需与上面的name保持一致,否则可能有启动业务失败

四、 查看 ttnode 状态

docker container ls # 查看所有容器

浏览器

docker inspect 容器名 -f "{{json .NetworkSettings.Networks.macnet.IPAddress }}" # 查看容器ip http://容器IP:1024  # 浏览器 查看二维码  端口

命令行

docker logs -f 容器名 # 查看二维码  端口

删除 ttnode

docker rm -f 容器名  # 删除容器

检查 ttnode 挂载

docker inspect -f '{{ .Mounts }}'  容器名

# 预期 [{bind  /mnt/host/dir /mnt/data/ttnode   true rprivate} ......]
# 左边是本机挂载目录 /mnt/host/dir ,右边必须是 /mnt/data/ttnode