MacOS下Docker端口占用问题:如何释放端口启动容器?
问题解决步骤
一、释放被占用的20000端口
在MacOS终端执行以下操作:
- 查找占用20000端口的进程:
命令执行后会输出进程详情,找到lsof -i :20000PID列对应的数字。 - 强制终止该进程:
将kill -9 <找到的PID><找到的PID>替换为实际查到的进程ID即可。
如果执行lsof未返回结果,可能是Docker网络残留导致的端口占用,直接重启Docker服务:打开Docker Desktop,点击右上角图标选择Restart。
二、解决Jenkins重启后配置丢失问题
之前配置消失是因为未挂载数据卷,容器内的Jenkins数据仅存储在容器内部,容器删除或重启后数据会丢失。修改docker-compose.yml,添加数据卷映射:
version: '3' services: jenkins: image: jenkins/jenkins:lts ports: - "8082:8080" - "20000:50000" volumes: - ./jenkins_home:/var/jenkins_home # 宿主机当前目录的jenkins_home目录映射到容器内数据目录 user: root # 避免宿主机与容器的权限冲突,可选配置
修改完成后执行docker-compose up -d,后续Jenkins的配置、插件、任务数据都会保存在宿主机的jenkins_home目录中,重启机器或容器都不会丢失数据。
内容的提问来源于stack exchange,提问作者folaRin
相关产品推荐
相关产品推荐

