• 运维日常错误总结(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
  • 相关阅读:
    LINQ体验(6)——LINQ语句之Join和Order By
    转 Spring.NET 与 NHibernate 的整合
    项目经理人必须要遵循的14个成功原则
    做成功的项目经理人
    就业模拟试题_Net(答案)
    java中的23中设计模式
    七种武器——.NET工程师求职面试必杀技
    如何识别真正的程序员
    WCF传输大数据的设置
    就业模拟试题_Java(答案)
  • 原文地址:https://www.cnblogs.com/bobo-wq/p/11588765.html
Copyright © 2020-2023  润新知