最近遇到的关于docker的问题

问题1:docker -v 与 onedrive 冲突

  • 问题现象

在windows下docker用Ubuntu镜像生成容器,用-v映射到本地目录,如果这个目录也是onedrive包含的目录,那有可能导致onedrive一直卡在“正在更新文件”中

  • 解决办法

    • 停掉和删除容器
    • 重设onedrive,键盘win+r,输入“%localappdata%\Microsoft\OneDrive\onedrive.exe /reset”
    • 重启操作系统
  • 这种方法但失去了在容器上操作文件后能直接同步到onedrive的功能,暂时用以下办法代替

    • 目录copy一份到别的路径下,然后写一个脚本,按差异复制到onedrive目录

以下是同步脚本

1
2
3
4
5
6
7
set NOWDIR=%~dp0
cd %NOWDIR%

set SRC=...
set DST=...

xcopy "%SRC%\server" "%DST%\server" /s /h /d /y /exclude:uncopy.txt

以下是uncopy.txt文件

1
2
3
4
5
6
7
8
9
10
11
12
*.so
*.o
*.a
*.log
*.dSYM

.idea
*.iml
*.rock
*.rockspec
.DS_Store
*.pid
  • 用系统的任务计划来执行脚本,把文件同步到onedrive下

问题2:docker -v映射目录后,容器中不生效

  • 引起这个问题的原因是更新了操作系统的密码,解决办法如下

    • 打开docker设置,在sharedrives栏,reset credentials…,然后选择shared的盘符,重新输入系统密码
    • 重新生成容器