0%

Docker macvlan使用记录

新建macvlan接口

1
2
3
4
5
6
7
8
9
10
#新建macvlan网络
docker network create -d macvlan -o parent=【eth0】 【eNet】 \
--subnet=【Network IP】 \
--ip-range=【IP Range】 \
--gateway=【Gateway IP】

例子:
docker network create -d macvlan -o parent=ovs_eth0 macnet --subnet=192.168.2.0/24 --ip-range=192.168.2.128/29 --gateway=192.168.2.1

docker run -d --name=qbittorrent --network macnet -e PUID=1026 -e PGID=100 -e TZ=Asia/Shanghai -e WEBUI_PORT=80 -v /volume1/docker/qbittorrent/config:/config -v /volume1/downloads:/downloads/vol1 -v /volume2/downloads2:/downloads/vol2 -v /volume4/media:/downloads/vol4 --restart unless-stopped linuxserver/qbittorrent:amd64-latest

Dockerfile:

1
2
3
4
5
6
7
8
9
10
11
12
FROM debian:latest
COPY start.sh torrc /tmp/
RUN apt-get update \
&& apt-get -y install openssh-server tor cron sudo rsyslog \
&& rm -rf /var/lib/apt/lists/* \
&& cat /tmp/torrc >> /etc/tor/torrc \
&& chmod +x /tmp/start.sh \
&& useradd -d /home/jervis -M -s /bin/bash -g root -G sudo jervis \
&& echo "root:1"|chpasswd \
&& echo "jervis:1"|chpasswd

ENTRYPOINT ["/bin/sh", "/tmp/start.sh"]

torrc

1
2
3
4
5
6
7
ControlPort 9051
HashedControlPassword 16:876313025F85703C60CD9BCDFA1AE88349D9C67D23C97B6754649ADD05

StrictNodes 1
#ExcludeNodes {cn},{hk},{mo}
#ExitNodes {jp},{tw},{sg},{my}
ExitNodes {at},{jp},{tw},{sg},{my}

start.sh

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
service rsyslog start
service ssh start
service cron start
service tor start

#su - jervis -c "cd /backup/media/api/spiders/mitmproxy && nohup sh run.sh > /dev/null 2>&1 &"
#su - jervis -c "aria2c -D --conf ~/.aria2/aria2rpc.conf"
touch /var/log/docker.log
tail -f /var/log/docker.log
1
docker build -t spideros .
1
docker run -d --restart always --name spiderDebian --hostname gingerOS --privileged --network macnet --ip 192.168.2.20  -v /volume3/backup:/backup -v /volume1/docker/spider-debian:/home/jervis -v /volume1/web:/web spideros

一些问题

  1. 某些服务无法重启动,比如service xxx stop无法停止:可能是无权限读取/proc内cwd, exe文件,docker用高权限(–privileged)启动即可;

后续完善

1
2
3
4
时区:
dpkg-reconfigure tzdata
编码:
apt install locales && dpkg-reconfigure locales

修改已经存在的容器配置

先docker inspect 容器id,查看配置路径,比如修改hostname,可以执行

1
docker inspect 容器id | grep -i hostname

取得容器目录,进入目录,修改config.v2.json,然后记得重启docker服务就会生效。

static IP设置,群晖需要手动修改config.v2.json
1
2
3
4
5
"Networks": {
"macnet": {
"IPAMConfig": {
"IPv4Address": "192.168.2.132"
},