zoukankan      html  css  js  c++  java
  • Windows系统下使用Docker的踩坑记录

      在实际Windows系统使用Docker的过程中,碰到很多坑,记录问题、原因、解决办法如下。

    1. 使用MySQL镜像报错

    问题描述

    使用MySQL镜像会报错,报错内容为:[ERROR] InnoDB: File ./ib_logfile101: 'aio write' returned OS error 122.

    原因:

    使用的文件系統不支持aio
    

    解决办法:

    在docker-compose.yml文件中,添加命令:command: "--innodb_use_native_aio=0",如下所示:

    mysql:
        environment:
          MYSQL_DATABASE: test
          MYSQL_PASSWORD: root
          MYSQL_ROOT_PASSWORD: root
          TZ: Asia/Shanghai
        image: mysql:latest
        command: "--innodb_use_native_aio=0"
        ports:
          - 3306:3306
        volumes:
          - ./data/mysql/data:/var/lib/mysql
    

    参考网址:https://stackoverflow.com/questions/48239668/fails-to-initialize-mysql-database-on-windows-10

    2. 启动Docker时报错ssh command error, IP未分配

    问题描述

    启动Docker时报错,报错内容为:

    Error checking TLS connection: Something went wrong running an SSH command!
    command : ip addr show
    err     : exit status 255
    output  :
    
    
    
    
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
                          __/
              \____\_______/
    
    Error getting IP address: Something went wrong running an SSH command!
    command : ip addr show
    err     : exit status 255
    output  :
    docker is configured to use the default machine with IP
    For help getting started, check out the docs at https://docs.docker.com
    
    Start interactive shell
    

    可以看到该Docker Toolbox的IP未分配,一般分配的IP为192.168.99.100 。

    原因

    未知
    

    解决办法

    在Docker Toolbox中重新创建docker machine,具体操作步骤如下:

    • 关闭Docker Toolbox中启动的服务,并关闭该软件;
    • 进入.docker文件夹(一般位于Administator用户下),删除该文件夹下面的certs和machines文件夹;
    • 重启Docker Toolbox,直至出现IP为止。

    3. Docker-Compose文件中镜像挂载文件丢失

    问题描述

    Docker-Compose文件中某个镜像挂载文件(volumns)丢失。

    原因

    未知
    

    解决办法

    将该镜像的挂载文件拷贝至镜像中。

    4. Windows保存文件时报错OS ERROR

    问题描述

    代码片段如下:

    file_name = 'output_%s.xls' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'download/%s' % file_name)
    f.save(file_path)
    

    该代码片段在Mac系统中运行正常,可以生成xls文件,但是在Windows系统报错,错误内容为OS ERROR

    原因

    Windows系统的文件名中不允许出现/  : * " < > | 这几个符号,代码的文件名含有:号。
    

    解决办法

    在Windows系统运行的时候,将代码中的文件名中的冒号改成其他Windows系统支持的符号即可。

    5. windows下默认安装docker后导致C盘空间不够

    问题描述

    windows下默认安装docker后导致C盘空间不够

    原因

    Windows系统安装Docker的默认路径为C盘,一般C盘的硬盘空间往往不够,推荐用其他的数据盘。
    

    解决办法

    1.默认虚拟盘在C:UsersA.dockermachinemachinesdefaultdisk.vmdk
    
    2.备份所有C:UsersA.docker的文件到D盘
    
    3.启动Oracle VM VirtualBox在设置-存储删除存储介质下面的控制器
    
    4.在Oracle VM VirtualBox的安装目录下执行:C:Program FilesOracleVirtualBox>vboxmanage internalcommands sethduuid "D:UsersA.dockermachinemachinesdefaultdisk.vmdk",此举是修改disk.vmdk的UUID以免冲突
    
    5.启动Oracle VM VirtualBox在设置-存储增加新的控件器,分别添加新虚拟光驱和虚拟硬盘,且分别指向备份到D盘下的ISO和vmdk文件
    
    6.启动Oracle VM VirtualBox在管理-虚拟介质管理器里可以对原来C盘下的虚拟光驱和虚拟硬盘进行删除,这样可以节省C盘的磁盘空间
    
    7.重新启动docker即可。
    

    参考网址:https://blog.csdn.net/xpb1980/article/details/90480983

  • 相关阅读:
    终端创建scrapy项目时报错(转)
    redis的一些命令
    pom.xml中build标签
    spring与mybatis四种整合方法
    linux lsof/netstat查看进程和端口号相关命令:
    ps -ef |grep 输出的具体含义
    java web项目在linux部署、启动,查看系统配置常用的linux命令总结
    linux mysql操作命令大全
    mysql中between...and..的使用,及时间范围的查询
    mysql中if()函数使用
  • 原文地址:https://www.cnblogs.com/jclian91/p/12345239.html
Copyright © 2011-2022 走看看