docker创建macvlan网络及甜糖容器设置
sudo docker network create -d macvlan \
--subnet=192.168.10.0/24 \
--gateway=192.168.10.3 \
-o parent=eth0 \
-o macvlan_mode=bridge \
macnet
sudo docker network rm macnet
sudo docker run -itd \
-v /mnt/appdata/ttnodeA:/mnts \
--name ttnodeA \
--hostname ttnodeA \
--net=macnet \
--ip=192.168.10.31 \
--dns=114.114.114.114 \
--mac-address C2:F2:9C:C5:B3:90 \
--privileged=true \
--restart=always \
ericwang2006/ttnode
docker run -d \
-v /mnt/appdata/zeruns:/mnt/data/ttnode \
-v /var/run/docker.sock:/var/run/docker.sock \
--name ttnode \
--hostname ttnode \
--net=host \
--restart=always \
--memory=1g \
registry.cn-hangzhou.aliyuncs.com/tiptime/ttnode:latest
https://hub.docker.com/r/tiptime/ttnode
一、 通过 host 模式部署(单实例)
sudo docker run -d \
-v /mnt/host/dir:/mnt/data/ttnode \
-v /var/run/docker.sock:/var/run/docker.sock \
--name ttnode \
--hostname ttnode \
--net=host \
--restart=always \
--memory=2g \
--cpus=1.5 \
tiptime/ttnode:latest
参数解释
-v /mnt/data/ttnode:/mnt/data/ttnode
(可自行修改本机缓存目录) /mnt/host/dir 表示本机缓存目录, /mnt/data/ttnode docker 内部缓存目录不需要修改-v /var/run/docker.sock:/var/run/docker.sock
支持自动更新--name ttnode
容器名称--net=host
(单实例不推荐修改) 目前推荐 docker host 模式,就是 docker 网络环境与设备环境一致,适合单拨。--hostname ttnode
(不推荐修改) ttnode uid 由 mac 地址和 hostname 决定,mac 地址和hostname 不变,ttnode uid 才能不变。mac 地址是主机地址了,所以指定 hostname 给容器,就可以固定 uid 了。--restart=always
(不推荐修改) 自动重启,除非 docker 出错--memory=2g
限制内存 2g--cpus=1.5
限制 cpu 核心数
二、 通过脚本部署 maclvan 模式(支持多实例)
wget https://gitee.com/jimyfar/ttnode_auto_deploy/raw/master/setup_docker.sh
sudo chmod +x setup_docker.sh
# 第一次运行
# --eth 网卡
# --cache_dir 缓存目录
# --ttnode_count ttnode docker实例数
sudo ./setup_docker.sh --eth=eth0 --cache_dir=/mnt/ttnode --memory=1g --cpus=1.5 --ttnode_count=2
# 之后运行用下面这行即可,保证 mac 地址不变
sudo ./setup_docker.sh # 直接读取配置文件
配置文件在 /etc/ttnode/config.txt # 包含 容器名 hostname mac地址等信息
三、 查看 ttnode 状态
sudo docker container ls # 查看所有容器
浏览器
sudo docker inspect 容器名 -f "{{json .NetworkSettings.Networks.macnet.IPAddress }}" # 查看容器ip
http://容器IP:1024 # 浏览器 查看二维码 端口
命令行
sudo docker logs -f 容器名 # 查看二维码 端口
删除 ttnode
sudo docker rm -f 容器名 # 删除容器
检查 ttnode 挂载
docker inspect -f '{{ .Mounts }}' 容器名
# 预期 [{bind /mnt/host/dir /mnt/data/ttnode true rprivate} ......]
# 左边是本机挂载目录 /mnt/host/dir ,右边必须是 /mnt/data/ttnode
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。