创建macvlan容器

sudo docker network create -d macvlan -o parent=ovs_eth0 ttnode_macvlan \
--subnet=192.168.5.0/24 \
--ip-range=192.168.5.60/27 \
--gateway=192.168.5.1

创建容器

sudo docker run -d \
  -v /volume1/docker/tt1:/mnt/data/ttnode \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name ttnode1_macvlan \
  --hostname ttnode1 \
  --ip=192.168.5.61 \
  --net=ttnode_macvlan \
  --restart=always \
  tiptime/ttnode:latest
sudo docker run -d \
  -v /volume1/docker/tt2:/mnt/data/ttnode \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name ttnode2_macvlan \
  --hostname ttnode2 \
  --ip=192.168.5.62 \
  --net=ttnode_macvlan \
  --restart=always \
  tiptime/ttnode:latest
一、 通过 host 模式部署(单实例)
sudo docker run -d \
-v /volume1/docker/tt:/mnt/data/ttnode \
-v /var/run/docker.sock:/var/run/docker.sock \
--name ttnode \
--hostname ttnode \
--net=host \
--restart=always \
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

标签: docker, 群晖

添加新评论