安装transmission-daemon与NordVPN后Docker容器初始化失败求助
问题分析与解决
错误原因
你遇到的错误源于Windows下Git Bash环境的路径转换特性:执行docker create时,Git Bash会把Linux风格的/bin/bash自动转成Windows本地路径C:/Program Files/Git/usr/bin/bash,但这个路径在Ubuntu容器内部根本不存在,导致容器启动失败。
解决方案
方案1:在Git Bash中禁用路径转换
在执行docker命令时,通过两种方式避免路径被转换:
# 方式一:用单引号包裹容器内的命令路径 docker create -it --name meu-container meu-container '/bin/bash' # 方式二:临时禁用Git Bash的路径转换功能 MSYS_NO_PATHCONV=1 docker create -it --name meu-container meu-container /bin/bash
执行完创建命令后,正常启动容器即可:
docker start -ia meu-container
方案2:切换到Windows原生终端执行命令
直接在Windows CMD或PowerShell中运行容器创建命令,完全避开Git Bash的路径转换问题:
docker create -it --name meu-container meu-container /bin/bash
方案3:修改Dockerfile,让容器默认启动bash
如果希望容器启动后直接进入bash提示符,可以修改Dockerfile的CMD指令,替换原有的transmission-daemon启动命令:
# 替换原CMD行内容 CMD ["/bin/bash"]
重新构建镜像后,直接创建并启动容器:
docker build -t meu-container . docker run -it --name meu-container meu-container
额外提示
原Dockerfile中的CMD ["/bin/sh", "transmission-daemon", "-f"]存在语法问题,正确写法应为CMD ["transmission-daemon", "-f"](transmission-daemon是可执行程序,无需通过/bin/sh调用),不过这和当前启动bash的需求无关。
内容的提问来源于stack exchange,提问作者Tantalus
相关产品推荐
相关产品推荐

