Docker 对接通用教程

安装 docker

CentOS

yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
systemctl start docker
systemctl enable docker

Ubuntu / Debian

sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
systemctl start docker
systemctl enable docker

运行命令示例

请自行学习你不熟悉的 docker 参数的具体含义,这里不是 docker 新手教程

--name 可以为容器起一个名字(可选),运行多个 docker 实例不要同名

-d 表示后台运行,若只是想测试,建议去掉 -d,前台运行,可实时查看日志

使用 -v 挂载目录(可选),建议挂载(一定要自己去理解 docker 挂载目录的含义,否则可能有些情况会误导你的判断),主要目的是挂载证书文件,自动申请的证书将存放在 /etc/soga/ 目录中

使用 --network host 可自动映射同位端口,提升 udp nat 等级,推荐使用

使用 -e xxx=yyy 配置参数,以下参数供参考,根据自己实际情况增加参数、修改参数

配置详细说明:soga 配置详细说明

命令中反斜杠 "\" 后面不要有空格

docker run --restart=on-failure --name soga -d \
-v /etc/soga/:/etc/soga/ --network host \
-e type=sspanel-uim \
-e server_type=v2ray \
-e api=webapi \
-e webapi_url=https://xxx.com/ \
-e webapi_key=asdasd \
-e node_id=1 \
-e cert_domain=aaaa.com \
-e cert_mode=http \
sprov065/soga

docker 常用命令

docker pull sprov065/soga # 更新 soga 镜像,更新后记得删除原镜像并重新运行soga
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器,包括已运行和未运行的
docker logs name_or_id # 查看容器日志
docker restart name_or_id # 重启容器
docker stop name_or_id # 停止容器
docker start name_or_id # 启动容器
docker rm name_or_id -f # 强制删除容器

docker 更新 soga 操作

# 拉取最新镜像
docker pull sprov065/soga:latest
# 或者指定版本,拉取前自行确认指定版本是否存在
docker pull sprov065/soga:2.2.1
# 强制删除当前正在运行的soga容器,name是你启动时设置的名称
docker rm name -f
# 然后再按照你原来的启动命令启动soga,此处省略

docker-compose.yml

请自行学习 docker-compose 的基本使用方法

可用环境变量的方式传参数,注意区分大小写

添加、修改你自己需要的参数

安装 docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker-compose.yml

推荐使用 network_mode: host,自动映射同位端口,提升 udp nat 等级

version: "3"
services:
soga:
image: sprov065/soga:latest
restart: on-failure
network_mode: host
environment:
type: sspanel-uim
server_type: v2ray
api: webapi
webapi_url: https://xxx.com/
webapi_key: xxxxxx
node_id: 0
cert_domain: aaa.com
cert_mode: http
force_close_ssl: 'false' # 填写 false 或 true 参数值时需要加引号
forbidden_bit_torrent: 'true' # 填写 false 或 true 参数值时需要加引号
volumes:
- "/etc/soga/:/etc/soga/"

docker-compose 常用命令

以下命令均需要在docker-compose.yml文件所在的目录下执行

docker-compose up # 前台启动soga,主要观察日志使用
docker-compose up -d # 后台启动soga,长期运行
docker-compose logs --tail=500 # 截取输出最后500行日志
docker-compose down # 停止并删除容器
docker-compose restart # 重启
docker-compose pull # 更新

docker-compose 更新流程

以下命令均需要在docker-compose.yml文件所在的目录下执行

# 首先更新
docker-compose pull
# 然后重新加载并重启即可,docker-compose 会自动删除旧容器并启动新更新的镜像
docker-compose up -d