目 录CONTENT

文章目录

服务器Docker应用安装笔记

Administrator
2024-02-06 / 0 评论 / 0 点赞 / 236 阅读 / 0 字

Ubuntu Server 安装 Docker应用

服务配置

  • 服务器:
    • Docker-CE
      • Nginx Proxy Manager:反向代理工具
      • Sing-box:代理
      • FRPS:内网穿透
      • RustDesk:远程访问工具

准备工作

一键DD重装系统

    1. 下载脚本
    • 国外服务器:
      curl -O https://raw.githubusercontent.com/bin456789/reinstall/refs/heads/main/reinstall.sh || wget -O reinstall.sh $_
      
    • 国内服务器:
      curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O reinstall.sh $_
      
    1. 安装系统
      bash reinstall.sh ubuntu 25.04
      
    1. 重启系统
      reboot

安装Docker

1. 更新系统软件包

sudo apt update
sudo apt upgrade -y

2.安装依赖包,允许 apt 使用 HTTPS

sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

3.添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

注意:如果你使用的是其他版本的 Ubuntu(如 20.04、22.04 等),请确保使用对应版本的仓库地址。

4.添加 Docker 的 APT 软件源

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$(lsb_release -cs) 会自动获取你当前 Ubuntu 的版本代号,如 focal(20.04)、jammy(22.04)等。

5.更新 apt 包索引

sudo apt update

6.安装 Docker Engine

sudo apt install -y docker-ce docker-ce-cli containerd.io

docker-ce 是社区版(免费),docker-ce-cli 是命令行工具,containerd.io 是容器运行时。

7.启动并设置开机自启(选做)

sudo systemctl start docker
sudo systemctl enable docker

8.验证安装

sudo docker run hello-world

如果看到 “Hello from Docker!” 的消息,说明安装成功。

  • 查看版本
    docker version

  • uninstall

sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

安装Potainer (可选)

新建数据存放路径

mkdir /docker_data
mkdir /docker_data/portainer

安装并运行portainer

docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /docker_data/portainer:/data --restart=always portainer/portainer-ce:latest

安装其它服务

NPM

version: '3.8'
services:
  app:
    container_name: npm
    image: 'chishin/nginx-proxy-manager-zh'
#   image: 'jc21/nginx-proxy-manager' #可选官方版
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - /docker_data/npm/data:/data
      - /docker_data/npm/letsencrypt:/etc/letsencrypt
  • 中文版
docker run -d --name npm -p 80:80 -p 81:81 -p 443:443 -v /docker_data/npm/data:/data -v /docker_data/npm/letsencrypt:/etc/letsencrypt --restart=always chishin/nginx-proxy-manager-zh #可选中文版
  • 官方版
docker run -d --name npm -p 80:80 -p 81:81 -p 443:443 -v /docker_data/npm/data:/data -v /docker_data/npm/letsencrypt:/etc/letsencrypt --restart=always jc21/nginx-proxy-manager #可选官方版
  • Access using http://your_host_name:81
  • Email address: [email protected]
  • password: changeme

FRP

  • 配置说明

    • FRPS
      • 官方已抛弃 .ini格式,建议使用新的 .toml格式
      • 更多示例请参考官方配置模板进行修改
    • FRPC
  • Frps Docker安装:

docker run -d --name=frps --restart=always -p 8080:80 -p 4433:443 -v /docker_data/frps/frps.toml:/frp/frps.toml  snowdreamtech/frps
  • Frps 配置示例:
[common]
bindAddr = "或服务器IP或绑定的域名"
bindPort = 7000

# 身份认证
auth.method = "token"
auth.token = "xxx"
authentication_method = token # 使用OpenWrt的frpc插件时得用旧版格式
token = xxx  # 使用OpenWrt的frpc插件时得用旧版格式

# 虚拟主机
vhostHTTPPort = 8080
vhostHTTPSPort = 4433
vhost_http_port = 8080  # 使用OpenWrt的frpc插件时得用旧版格式
vhost_https_port = 4433  # 使用OpenWrt的frpc插件时得用旧版格式

# Dashboard
webServer.port = 7500
webServer.user = "admin"
webServer.password = "xxx"

# TCP多路复用
transport.tcpMux = true
tcpmuxHTTPConnectPort = 5002

# 连接池
transport.maxPoolCount = 5

# KCP协议
# kcp 绑定的是 UDP 端口,可以和 bindPort 一样
# kcpBindPort = 7000

# QUIC协议
# QUIC 绑定的是 UDP 端口,可以和 bindPort 一样
# quicBindPort = 7000

# 自定义二级域名
subdomainHost = "example.com"

从 v0.52.0 版本开始,frp 开始支持 TOML、YAML 和 JSON 作为配置文件格式。
请注意,INI 已被弃用,并将在未来的发布中移除。新功能只能在TOML、YAML 或 JSON 中使用。希望使用这些新功能的用户应相应地切换其配置格式。

RustDesk

docker run --restart=always --network host -d -v /docker_data/rustdesk:/data --name rustdesk rustdesk/rustdesk-server-s6:latest

Sing-Box

docker run -dit \
    --pull always \
    --name sing-box \
    -p 8800-8820:8800-8820/tcp \
    -p 8800-8820:8800-8820/udp \
    -e START_PORT=8800 \
    -e SERVER_IP=你服务器的IP \
    -e XTLS_REALITY=true \
    -e HYSTERIA2=true \
    -e TUIC=true \
    -e SHADOWTLS=true \
    -e SHADOWSOCKS=true \
    -e TROJAN=true \
    -e VMESS_WS=true \
    -e VLESS_WS=true \
    -e H2_REALITY=true \
    -e GRPC_REALITY=true \
    -e ANYTLS=true \
    -e UUID=可在线生成 \
    -e CDN=www.csgo.com \
    -e NODE_NAME=sing-box \
    -e ARGO_DOMAIN=你的CF Tunnel添加的域名 \
    -e ARGO_AUTH='你的CF Tunnel Token' \
    fscarmen/sb

备注

  1. 隐藏端口方法:以NPM访问端口81为例。安装好NPM后可通过 http://域名或IP:81访问,在NPM配置端口转发后可不带端口访问,配置好SSL后可使用https协议访问。

  2. NPM配置FRP服务只需要填写IP(172.17.0.1)和转发端口(8080)即可。

  3. Rustdesk不需要配置端口转发,客户端会自动识别端口。

参考

0

评论区