微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运维日常错误总结docker)

一:Apache服务启动失败
报错原因:80端口被占用
分析:netstat -anp|grep 80 检查80端口的占用情况,发现是启动了Nginx服务,占用了http服务
解决方式:
1:如Nginx是临时用的,没有必要使用,可以杀死Nginx进程
2:如若需要使用Nginx服务,则需要把配置文件的监听端口给改掉,虽然是非认端口,只要其他服务不会使用到就没问题,具体操作命令是



    semanage port -a -t http_port_t -p tcp 888
     vi /etc/httpd/conf/httpd.conf #进入文件修改配置文件的80为888
    systemctl start httpd
     netstat -anp|grep 80

最后访问ip:888便没问题
二:docker-compose报错问题
ERROR: for web Cannot start service web: b'driver Failed programming external connectivity on endpoint project_web_1 (a80dc6c5c57612d755e2a0b97c4758bb94c4fe7b06bff4219ab417133e3c8b24): Error starting userland proxy: listen tcp 0.0.0.0:8000: bind: address already in use'
ERROR: Encountered errors while bringing up the project.
错误原因:很明显又是端口占用问题
使用netstat -anp|grep 8000
查处占用的pid

    [root@database project]# ps aux|grep 7419/java
    root      60796  0.0  0.0 112712   988 pts/0    S+   23:08   0:00 grep --color=auto 7419/java #这处的7419就占用了

解决方案:kill -9 7419,也可以查看这个进程,找到它的配置文件修改它的监听端口

三:虚拟机访问MysqL容器

    docker container run --rm -d --name django01 --network gtsb -e MysqL_ROOT_PASSWORD=123456 -e MysqL_DATABASE=blog -e             
     HOST=MysqL01 -p 8000:8000 django:0920

错误原因:容器没有启动
分析原因:docker logs b4f #b4f为id的前3位
查看日志结果:系统不知道Host.MysqL解决方案是--name MysqL。因为在生成镜像的的时候,没有写死,里面的host定义的是MysqL,所以--name 要和生成容器定义的host主机一致
如果还有报错,就要检查,网络和密码,以及表名是否还有错误,如果是无法连接到MysqL,则要看看镜像名是否用错了

    [root@database project]#  docker container run  -d --name MysqL --network gtsb -e MysqL_ROOT_PASSWORD=123456 -e MysqL_DATABASE=blog 
    -e HOST=MysqL -p 7000:8000 MysqL:5.7

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐