纯IPV6服务器部署Docker应用

本次分享的是IPV6服务器部署Docker应用,以Memos和NextCloud为例,系统使用Debian/Ubuntu

云服务器的成本,很大一部分在于IP地址,IPV4地址分配紧张,因此价格也是十分高昂,而IPV6的服务器因为地址量大,相对来说服务器价格也会低很多,比如我最近购买的一台4H4G 80G 3M的纯IPV6大陆服务器,价格只需要18一年,并且相对于IPV4,IPV6的服务器无需备案也可以直接IP访问,不能使用域名,但是作为个人服务器已经够用了。

1.准备工作

  1. 一台IPV6服务器(Debian/Ubuntu)
  2. Docker镜像(自行准备)

2.环境配置

  1. 首先,配置Dns64,增强IPV4访问能力,然后更新软件
    echo -e "nameserver 2a01:4f8:c2c:123f::1" > /etc/resolv.conf
    sudo apt update -y && sudo apt upgrade
  2. 安装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地址需要用 [ ] 框住,不要删掉,否则会变成搜索

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注