運維日常錯誤總結(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM