本次分享的是IPV6服务器部署Docker应用,以Memos和NextCloud为例,系统使用Debian/Ubuntu
云服务器的成本,很大一部分在于IP地址,IPV4地址分配紧张,因此价格也是十分高昂,而IPV6的服务器因为地址量大,相对来说服务器价格也会低很多,比如我最近购买的一台4H4G 80G 3M的纯IPV6大陆服务器,价格只需要18一年,并且相对于IPV4,IPV6的服务器无需备案也可以直接IP访问,不能使用域名,但是作为个人服务器已经够用了。
1.准备工作
- 一台IPV6服务器(Debian/Ubuntu)
- Docker镜像(自行准备)
2.环境配置
- 首先,配置Dns64,增强IPV4访问能力,然后更新软件
echo -e "nameserver 2a01:4f8:c2c:123f::1" > /etc/resolv.conf
sudo apt update -y && sudo apt upgrade
- 安装Dokcer和Docker-compose
apt install docker docker-compose
等待Docker的安装完成
3.配置Docker,开启IPV6支持
- 首先,自定义Docker的网关
# default-gateway-v6:自定义Docker默认网络中,容器中ipv6网络默认网关。
# 设置之后虽然容器内部的default route已经设置为fd00:db8:1::ffff
# 但是,docker0 bridge interface的ipv6地址仍然使用默认地址:fd00:db8:1::1
vim /etc/docker/daemon.json
{
"ipv6": true,
"fixed-cidr-v6": "fd00:db8:1::/64",
"experimental": true,
"ip6tables": true,
"default-gateway-v6": "fd00:db8:1::ffff"
}
- 然后,创建Docker网络
docker network create -d bridge --ipv6 --subnet "fd00:db8:2:ddee::/64" --gateway="fd00:db8:2:ddee::1" ipv6only
此时,我们创建了一个名为ipv6only的Docker网络
原本是创建的双栈的,但是国内服务器没法套上CF,套上了速率也很感人,而且双栈经常没法正常访问,索性只要IPV6
- 启动容器,在启动容器时指定网络为刚刚创建的Ipv6 –network ipv6only
- 除了网络,还有端口修改为 -p [: :]实际端口:映射端口
启动memos docker run -d --name memos --network ipv6only -p [::]:5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable
启动NextCloud docker run -d --restart=always --network ipv6only --name nextcloud -p [::]:9001:80 -v /root/nextcloud:/data nextcloud
4.部署完成,使用IPV6网络进行访问
访问地址:
Memos http://[你的ipv6地址]:5230/
NextCloud http://[你的ipv6地址]:9001/
ipv6地址需要用 [ ] 框住,不要删掉,否则会变成搜索