随着私有部署的程序越来越多,很多程序都默认使用 8008 3000 这样的默认端口,不修改会冲突,修改了有时候会想不起来对应的端口号。
用 docker 的话端口号能和对应的容器对应起来,但复杂的带参数的启动命令可能会忘记,只得又去网上查找。
请问 V 友们是如何管理私有服务的呢?有现成工具还是“纸笔”记录?
1
dif 236 天前 1
看情况咯,有些用 pm2 ,有些用 supervisor 。 另外端口也都是由有点规则。不行就简单写个页面,做端口管理。几个增删改查就能搞定。
|
2
LeslieLeung 236 天前 1
以前用 notion 的表格做过一个,主要是记某服务部署在哪台机器上了。后来不用 notion 了就没了。
至于启动命令的问题,docker compose 能解决你的烦恼。不过有些默认用的 compose 会把目录挂载到 docker volume ,迁到其他机器不知道怎么办,一般我会改成挂载到某个目录。 端口号记录这个,我用 nginx proxy manager 来统一对外,所以可以在那上面查。 |
3
nevermoreluo 236 天前 1
@LeslieLeung
compose 里面的默认挂载目录可以通过 docker volume ls + docker volume inspect xxxx_xx 拿到绝对路径迁移,可以尝试下,不过自己指定最好,省的磁盘满了有同学直接用工具把暂时不用的都给清理了。。。 |
4
retanoj 236 天前 1
所以企业有 域名 + Ngx + 后端服务 ;)
|
5
henix 236 天前 4
|
6
evill 236 天前 1
用了 docker ,上 docker compose 呗
后续就剩下 docker compose down/up/restart 了 |
7
lyer5 236 天前 1
所有进程启动的时候都定时上报心跳注册服务信息到一个地方,比如 etcd 、zk
|
8
Ubserate 236 天前 1
啊 所有服务都要暴露到外面去啊
|
9
shixuedela 236 天前 1
你知道查询当前服务器运行了那些服务端口不就行了吗?
root 用户 ss -tnlp 直接可以查询到端口对应的服务。 如果全部容器化的话 可以加一个代理。暴露一个端口就可以了 |
10
sonnyclarity492 OP 感谢楼上各位的解答,我了解到 docker compose 能有效管理 docker 应用(#6 );命令行启动的应用可以使用 supervisor ,nginx proxy manager 等工具来记录和管理(#1 ,#2 )。有关应用端口号的取值方法也值得学习(#5 )。
有意思的是上报心跳(#7 ),这个有待我学习。 还有 v 友提到域名,这个当然是有的,但是服务部署之后,一年半载就过去了,不记录就真记不起来了。 |
11
KongLiu 236 天前 1
docker + portainer
|
12
sonnyclarity492 OP @shixuedela 查占用端口 ss -tnlp 确实是可以的,但是如果同时跑了多个 python 脚本,只能看到 PID ,定位不到哪个脚本占用了,还得一个个排查。
|
13
kgcHQbTYyvcz2w3j 236 天前 1
全部用 docker compose ,哪怕最简单的 docker run 都写成 docker compose
说起 docker compose ,推荐一个工具 Dockege |
14
shixuedela 236 天前 1
@sonnyclarity492 如果跑多个 Python 脚本 打包成镜像.通过端口映射 docker ps 也比较好管理.
|
15
Mithril 236 天前 1
直接用 portainer 管理容器,配个通配符的 DNS ,然后用 traefik 去做反向代理。
记个简单的服务名就行了,记端口号太麻烦了。 |
16
sparkinglemon 236 天前 1
一水 compose ,方便管理,而且到指定位置直接 docker compose pull && docker compose up -d 也方便,如果只提供了 docker run 的镜像,可以用类似的工具转换 https://www.composerize.com/
|
17
Van426326 236 天前 1
一般会用 nginx 反代,再配 ssl 证书,所以查端口可以看 nginx 配置 。另外会用 docker compose ,没有的话会把启动命令放在 sh 文件里面执行
|
18
THESDZ 236 天前 1
docker + traefik
|
19
potatowish 236 天前 via iPhone 1
主机服务商有防火墙管理面板,开通端口的时候备注下就行
|
20
IamUNICODE 236 天前 1
docker-compose 或者 pm2 吧,看情况
|
22
proxychains 236 天前
@henix #5 妙啊
|
23
mayli 234 天前 1
> 但复杂的带参数的启动命令可能会忘记,只得又去网上查找
如果你的需求是这个,那么就把服务写 systemd service ,这样端口号就写到了配置文件 查找的时候 netstat -ntlp ,可以查看进程监听的端口号,这样可以找到了端口号对应的进程 |
24
onebitbank 233 天前
我以前用 pm2 ,现在都用 ubuntu 自带的 systemd 管理服务,端口安排好不冲突就行
|