调用“docker run”时如何诊断“docker:无效的引用格式”?

问题描述 投票:0回答:1

我正在尝试创建一个 shell 脚本来运行 docker 容器,但很困难。我的脚本是这样的:

#!/bin/bash

if [ "$1" == "" ]; then
    echo "Usage > run.sh IMAGE NAME"
    echo
    echo "i.e. ./build.sh cd2:0.0.49"
    exit
fi

echo $1

docker run -it --rm \
-e NODE_PATH='./src'\
-e NODE_HOST='0.0.0.0'\
-e NODE_ENV='production'\
-e DOCKER=true\
-e PORT='8080'\
-e STAGING=true\
-e SENDGRID_API_KEY='<redacted>'\
-p 8080:8080 $1

跑步时:

bash run.sh cd2:0.0.50

我得到:

docker: invalid reference format: repository name must be lowercase.

即使我这样做

bash run.sh cd:0.0.50
它仍然失败(
echo $1
导致
cd2:0.0.50
)。

如果我从命令行运行

docker run -it --rm -p 8080:8080 cd2:0.0.50
它可以工作......

有人可以帮忙吗?

bash shell docker
1个回答
10
投票
docker run \
-e NODE_PATH='./src' \
-e NODE_HOST='0.0.0.0' \
-e NODE_ENV='production' \
-e DOCKER=true \
-e PORT='8080' \
-e STAGING=true \
-e SENDGRID_API_KEY='<redacted>' \
-p 8080:8080 --rm -it $1

图像名称应紧接在 -it 参数之后,因此请重新安排运行命令。

© www.soinside.com 2019 - 2023. All rights reserved.