• 【Linux/Ubuntu】 部署docker时遇到的问题


    一、安装docker+docker-compose

    docker安装是参考下面两个链接,其中腾讯云的讲解我觉得更详细和专业一点。apt安装的包是docker-ce,表示社区版。
    Docker教程
    腾讯云 如何在Ubuntu上安装使用Docker

    1、apt安装包时警告kernel version版本不对

    ─────────────────────────────────────────────── Pending kernel upgrade ├───────────────────────────────────────────────┐
    │                                                                                                                        │
    │ Newer kernel available                                                                                                 │
    │                                                                                                                        │
    │ The currently running kernel version is 5.15.0-41-generic which is not the expected kernel version 5.15.0-43-generic.  │
    │                                                                                                                        │
    │ Restarting the system to load the new kernel will not be handled automatically, so you should consider rebooting.      │
    │                                                                                                                        │
    │                                                         <Ok>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    警告-1
    警告-2
    解决参考一
    解决参考二,侧重于一中提到的needrestart包

    X、docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.

    如果使用docker命令会出现这种提示,那么就是默认情况下,docker命令只能由root用户或docker组中的用户运行。要想在在运行docker命令时不输入sudo,请将用户名添加到docker组中:

    sudo usermod -aG docker ${USER}
    
    • 1

    2、docker: Got permission denied while trying to connect to the Docker daemon socket at 网址: Post 网址: dial unix /var/run/docker.sock: connect: permission denie

    安装完测试docker是否可以运行时,输入命令docker run --rm hello-world,跳出这个错误。在前面加上sudo可以暴力解决,估计是权限问题。
    解决参考一

    3、安装docker-compose时使用sudo curl提示-bash 路径 permission denied

    用sudo还是没法暴力解决,但仍然是权限问题。使用sudo su切换到root用户,再运行有关命令即可。

    4、安装完docker-compose执行命令提示/usr/local/bin/docker-compose: line 1: Not: command not found

    根据docker某个教程网站使用

    sudo curl -L https://download.fastgit.org/docker/compose/releases/download/2.9.0/docker-compose-`uname -s`-`uname -m` > /usr/libexec/docker/cli-plugins/docker-compose
    
    • 1

    只是修改了个版本号。经搜索发现是版本号没有加v导致的。

    正确的指令应该是

    sudo curl -L https://download.fastgit.org/docker/compose/releases/download/v2.9.0/docker-compose-`uname -s`-`uname -m` > /usr/libexec/docker/cli-plugins/docker-compose
    
    • 1

    5、按命令安装docker-compose后,却提示没有安装

    记得使用chmod +x /usr/local/bin/docker-compose将其加权只可执行文件,不然系统就无法找到它,并且在ls模式下它是一个白色的文件,which means普通文件。加权之后会变成绿色的,也就是可执行文件。
    有关compose-switch插件的使用(因为docker-compose V1使用python写的,调用语句是docker-compose,而docker-compose V2使用go写的,将它安装在docker的cli-plugins文件夹下作为插件使用,调用语句变成docker compose,算是集成在了docker内)
    我搞了半天也没成功运用这个插件,就算了,但找到的好的方法还是需要贴一下。
    解决参考

    二、远程服务器使用

    1、Screen-解决Putty链接断开程序终止问题,多窗口解决方案

    Screen-解决Putty链接断开程序终止问题

    三、docker部署中

    1、postman访问,nginx端根本无反应

    端口连接不对。

    2、postman访问,nginx端输出一些乱码,返回400,postman显示报错Error: write EPROTO 196872:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../../../src/third_party/boringssl/src/ssl/tls_record.cc:242:

    网址中使用了https,去掉s使用http即可

    3、nginx、postman可正常显示,但nginx显示502错误,postman得到Bad Gateway

    django容器中的服务没有启动好,重新走一遍就可以。

    4、文件传输不上去

    postman传文件,返回{ "error": "The data can't be found in database. [Errno 13] Permission denied: '/usr/local/lib/python3.8/site-packages/cms/media/software packages'", "status": 101025 }
    不管是小文件还是大文件都传不上去,首先排除因为nginx配置文件大小的原因。应该是文件权限问题。
    在django容器映射到服务器的media文件中,发现media文件的权限没有开到最大,chmod -R 777 media即可。
    奇怪的是该语句在web容器的Dockerfile中已经写过了,但为何执行无用,还需要检查一下。

  • 相关阅读:
    LeetCode——面试题 02.01. 移除重复节点
    【校招VIP】前端计算机网络之HTTP和HTTPS
    使用matlab,求解该方程的数值解,并分别画出状态变量的时间响应图、相空间的三维图
    算法分析与设计CH25:回溯算法Back-Tracking——N皇后问题
    使用Python 创建 AI Voice Cover
    第18章linux系统-备份与恢复
    Exception in thread “AWT-EventQueue-0“ java.lang.NullPointerException
    2D-Driven 3D Object Detection in RGB-D Images
    【线性表】—不带头单向非循环链表的增删查改
    人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0)
  • 原文地址:https://blog.csdn.net/qq_42438771/article/details/126138964