Windows系统下使用Docker的踩坑记录

素颜马尾好姑娘i 2023-07-07 08:51 34阅读 0赞

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

1. 使用MySQL镜像报错

问题描述

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

原因:

  1. 使用的文件系統不支持aio

解决办法:

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

  1. mysql:
  2. environment:
  3. MYSQL_DATABASE: test
  4. MYSQL_PASSWORD: root
  5. MYSQL_ROOT_PASSWORD: root
  6. TZ: Asia/Shanghai
  7. image: mysql:latest
  8. command: "--innodb_use_native_aio=0"
  9. ports:
  10. - 3306:3306
  11. volumes:
  12. - ./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时报错,报错内容为:

  1. Error checking TLS connection: Something went wrong running an SSH command!
  2. command : ip addr show
  3. err : exit status 255
  4. output :
  5. ## .
  6. ## ## ## ==
  7. ## ## ## ## ## ===
  8. /"""""""""""""""""\___/ ===
  9. ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
  10. \______ o __/
  11. \ \ __/
  12. \____\_______/
  13. Error getting IP address: Something went wrong running an SSH command!
  14. command : ip addr show
  15. err : exit status 255
  16. output :
  17. docker is configured to use the default machine with IP
  18. For help getting started, check out the docs at https://docs.docker.com
  19. Start interactive shell

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

原因

  1. 未知

解决办法

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

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

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

问题描述

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

原因

  1. 未知

解决办法

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

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

问题描述

代码片段如下:

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

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

原因

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

解决办法

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

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

问题描述

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

原因

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

解决办法

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

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

发表评论

表情:
评论列表 (有 0 条评论,34人围观)

还没有评论,来说两句吧...

相关阅读