Linux|--sh脚本|--文件执行报错::Error response from daemon: invalid reference format

发布时间 2023-04-03 09:20:29作者: zh89233

前言

由于Linux中的docker镜像和容器需要批量处理,
所以搞一个脚本,直接一下处理了,

1.我在Windows 10的本机电脑上新建了一个"test.sh"文件
2.将"test.sh"文件上传到Linux环境中
3.在Linux中执行"sh test.sh"
4.报错了...

第一次报错信息

[root@VM-4-3-centos test_api]# sh dockerLinuxScript.sh
=================begin=================
Error response from daemon: invalid reference format
[+] Building 0.0s (0/0)
ERROR: unable to prepare context: path "/usr/local/webapi/test_api/\r" not found
Error response from daemon: No such container: test_api
docker: invalid reference format.
See 'docker run --help'.
#下面这行的乱码其实是中文"执行完成"
=================ִ▒▒▒▒▒=================
#第一次解决方法
将文件"test.sh"编码,
由"ASCII"修改为了"UTF-8", 这次修改解决了中文乱码的问题,
但是主要错误还在,接着往下看...

第二次报错信息

=================begin=================
Error response from daemon: invalid reference format
[+] Building 0.0s (0/0)
ERROR: unable to prepare context: path "/usr/local/webapi/test_api/\r" not found
Error response from daemon: No such container: test_api
docker: invalid reference format.
See 'docker run --help'.
=================执行完成=================

解决方案

#用vi/vim打开脚本,设置文件格式为unix。
vim test.sh
#或者 "set fileformat=unix"
:set ff=unix
:wq

扩展--1(查看当前文件格式是dos还是unix)

vim test.sh
:set ff

扩展--2( 修改为dos )

set fileformat=dos
#或者
set ff=dos