Docker docker-compose安装trojan-go

docker-compose 是什么

熟悉docker的人都知道Dockerfile用来构件单个镜像服务的,想要运行服务,要输入复杂的 run 命令来启动并配置服务。
对于服务间依赖以及服务的环境变量网络参数文件挂载等操作,当然可以使用yaml文件来配置,这就是docker-compose
docker-compose 就是Docker编排工具,可以优雅的配置服务间的依赖关系,服务的属性控制,减少运维成本。

docker-compose 安装 trojan-go

目录结构

1
2
3
4
5
6
7
trojan-go
├─ crt
│ ├─ ca_bundle.crt
│ ├─ certificate.crt
│ └─ private.key
├─ docker-compose.yml
└─ server.json
  • crt SSL证书路径
  • crt/* SSL证书文件
  • ./server.json trojan-go服务配置文件
  • ./docker-compose.yml docker-compose配置文件

trojan-go docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3'
services:
trojan-go:
image: teddysun/trojan-go:latest
restart: always
ports:
- "5043:443"
volumes:
- ./server.json:/etc/trojan-go/server.json
- ./crt/:/opt/crt/
command: /usr/bin/trojan-go -config /etc/trojan-go/server.json
  • image 服务使用的镜像
  • restart: always/no 保持无服务开机启动或者其他情况下正常启动/不自动启动
  • volumes 挂载外部路径到容器内部
  • ports 暴露服务内部端口
  • ./docker-compose.yml docker-compose配置文件

服务配置文件server.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "10.10.10.10",
"remote_port": 80,
"password": [
"password"
],
"log_level": 1,
"ssl": {
"cert": "/opt/crt/certificate.crt",
"key": "/opt/crt/private.key",
"key_password": "",
"cipher_tls13":"TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
"prefer_server_cipher": true,
"alpn": [
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"session_timeout": 600,
"plain_http_response": "",
"curves": "",
"dhparam": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"fast_open": false,
"fast_open_qlen": 20
}
}

启动服务

执行命令启动服务 docker-compose up -d

等待success提示则=启动成功

服务启动成功,就可以使用访问trojan-go服务了

docker-compose 常用命令

属性 描述
docker-compose build (构建yml中某个服务的镜像)
docker-compose ps (查看已经启动的服务状态)
docker-compose kill (停止某个服务)
docker-compose logs (可以查看某个服务的log)
docker-compose port (打印绑定的public port)
docker-compose pull (pull服务镜像)
docker-compose up (启动yml定义的所有服务)
docker-compose stop (停止yml中定义的所有服务)
docker-compose start (启动被停止的yml中的所有服务)
docker-compose kill (强行停止yml中定义的所有服务)
docker-compose rm (删除yml中定义的所有服务)
docker-compose restart (重启yml中定义的所有服务)
docker-compose scale (扩展某个服务的个数,可以向上或向下)
docker-compose version (查看compose的版本)





更多好玩好看的内容,欢迎到我的博客交流,共同进步        WaterMin