docker 启动 jenkins
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins/jenkins
报错:docker: Error response from daemon: driver failed programming external connectivity on endpoint jenkins (01992050d92a06e9e8ad962f6dd13f4a34cc7ff4335aba39626471422e6d777b): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use.
- 检查端口8080是否真的监听 netstat -anp|grep 8080
- 依据端口查看进程:ps -ef|grep 495,杀死进程 kill -9 495
- 删除启动的容器:docker rm -f jenkins
- 再次启动:docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v ${PWD}/jenkins:/var/jenkins_home jenkins/jenkins
- 查看日志发现没有权限,则 chmod 777 -R jenkins
[root@ronky ~]# netstat -anp|grep 8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 495/python
udp 0 0 0.0.0.0:8080 0.0.0.0:* 495/python
[root@ronky ~]# ps -ef|grep 495
root 495 1 0 Jun24 ? 00:00:44 /usr/bin/python /usr/bin/ssserver -c /etc/shadowsocks.json
root 21542 20366 0 18:05 pts/0 00:00:00 grep --color=auto 495
[root@ronky ~]# kill -9 495
[root@ronky ~]# docker logs jenkins
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
- 再次查看启动日志:docker logs jenkins
- 获取 jenkins 首次登陆密码:docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
- http://47.52.1.103:8080 访问 jenkins
- 问题:curl http://127.0.0.1:8080 可以访问,但是http://47.52.1.103:8080 不能访问的解决方法
- 查看云服务器的安全组是否添加 8080 和 50000端口
- 在服务器关闭防火墙: systemctl stop firewalld
总结 docker run 启动应用遇到的坑:
- 端口占用报错:docker: Error response from daemon: driver failed programming external connectivity on endpoint jenkins (01992050d92a06e9e8ad962f6dd13f4a34cc7ff4335aba39626471422e6d777b): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use.
- 解决方法:依据占用端口查询出进程,并把进程杀死,再次运行 docker run 即可
- 权限报错:‘/var/jenkins_home/copy_reference_file.log’: Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
- 解决方法:chmod 777 -R jenkins,重启容器
- docker 启动服务成功后,http://47.52.1.103:8080 访问不了
- 解决思路:curl http://127.0.0.1:8080 是否可以访问,如果可以则服务启动正常
- 查看云服务器的安全组是否添加 8080 和 50000端口
- 在服务器关闭防火墙: systemctl stop firewalld