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:\Users\A\.docker\machine\machines\default\disk.vmdk

2.備份所有C:\Users\A\.docker的文件到D盤

3.啟動Oracle VM VirtualBox在設置-存儲刪除存儲介質下面的控制器

4.在Oracle VM VirtualBox的安裝目錄下執行:C:\Program Files\Oracle\VirtualBox>vboxmanage internalcommands sethduuid "D:\Users\A\.docker\machine\machines\default\disk.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


免責聲明!

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



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