
本地部署 OpenVPN 教程
1\. 环境准备 操作系统:推荐使用 Ubuntu 22.04 / Debian 12 权限:需要 root 或 sudo 权限 网络:确保服务器有公网 IP,并且 UDP 119
在目标服务器上执行以下命令,确认系统架构:
uname -m
输出 x86_64:对应 amd64 架构(Intel/AMD 64位服务器)
输出 aarch64:对应 arm64 架构(如树莓派4B、ARM云服务器等)
访问 Docker 官方静态二进制下载地址:https://download.docker.com/linux/static/stable/
根据上一步确认的架构,进入对应目录下载 .tgz 压缩包:
服务器架构下载目录amd64 (x86_64)x86_64/arm64 (aarch64)aarch64/
推荐下载最新稳定版本,例如
docker-28.4.0.tgz(版本号请以实际为准)。
使用 U 盘、scp、FTP 等方式将下载的 .tgz 文件上传到目标服务器的任意目录,例如 /home/your_user/docker-install/。
wget https://download.docker.com/linux/static/stable/aarch64/docker-29.6.2.tgz
tar -xzvf docker-*.tgz
解压后会得到一个 docker/ 目录,其中包含 dockerd(守护进程)和 docker(客户端)等可执行文件。
将二进制文件拷贝到 /usr/bin/ 目录,让系统可以直接识别这些命令:
sudo cp docker/* /usr/bin/
如果不想使用
sudo,也可以拷贝到用户自己的~/bin/目录(需确保该目录在PATH环境变量中)。
为了让 Docker 开机自启并以服务形式运行,需要创建 systemd 服务文件。在 /etc/systemd/system/ 下创建 docker.service 文件:
sudo tee /etc/systemd/system/docker.service > /dev/null << 'EOF'
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
sudo docker version
如果能正常显示客户端和服务端的版本信息,说明安装成功。
默认情况下,Docker 守护进程的 Unix 套接字 /var/run/docker.sock 只有 root 用户有权限访问,因此普通用户执行 docker 命令需要加 sudo。
要实现普通用户免 sudo 使用 Docker,需要将用户加入 docker 用户组。
sudo groupadd docker
sudo usermod -aG docker $USER
有两种方式使组变更生效:
方法一:退出当前 SSH 会话并重新登录
方法二:执行以下命令:
newgrp docker
执行以下命令,确认不再需要 sudo:
docker version
docker run hello-world
如果 hello-world 容器正常输出欢迎信息,说明普通用户已成功获取 Docker 使用权限。
如需卸载离线安装的 Docker,执行以下步骤:
sudo systemctl stop docker
sudo systemctl disable docker
sudo rm -f /etc/systemd/system/docker.service
sudo rm -rf /usr/bin/docker*
sudo rm -rf /usr/bin/containerd*
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo systemctl daemon-reload
如需同时移除用户组中的用户,可执行:
sudo gpasswd -d $USER docker
安全提示:docker 用户组拥有与 root 用户同等的权限,请仅将可信用户加入该组。
生产环境建议:官方文档指出,静态二进制安装不会自动获得安全更新,建议生产环境优先使用包管理器在线安装。离线安装多用于测试或网络受限的内网环境。
关于 ~/.docker/ 目录权限:如果此前使用 sudo 执行过 docker 命令,可能会因权限问题导致警告。可通过以下命令修复:
sudo chown "$USER":"$USER" "$HOME/.docker" -R
sudo chmod g+rwx "$HOME/.docker" -R
评论 0