Docker中未终止的带引号的字符串

Ani*_*rua 3 docker docker-for-windows

我正在尝试在 docker 命令外壳中打印一个循环。当我在第一行运行容器时,它似乎在执行 ID 时工作,但是当我打印日志时,它显示“语法错误:未终止的引用字符串”我找不到这里出了什么问题?你能帮我吗。

C:\Users\Anik Barua
? docker run -d --name simple2 busybox /bin/sh -c 'i=0; while true; do echo ; i=1; sleep 1; done'
8bb4bfbe11f24f897ba66bb090e010eed24fd8cf1685e7c0a41b77abe34f864d

C:\Users\Anik Barua
? docker logs simple2
while: line 1: syntax error: unterminated quoted string

C:\Users\Anik Barua
? docker logs -f simple2
while: line 1: syntax error: unterminated quoted string
Run Code Online (Sandbox Code Playgroud)

小智 9

如果有任何未终止的字符串,请检查您的 Dockerfile。例如

ENTRYPOINT ["java","-jar","/dockerdemo-1.0.jar]  
Run Code Online (Sandbox Code Playgroud)

代替

ENTRYPOINT ["java","-jar","/dockerdemo-1.0.jar"]
Run Code Online (Sandbox Code Playgroud)


小智 8

我正在按照本教程设置 debezium 结构来监视 sql 数据库中的更改。(debezuim 教程

docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
Run Code Online (Sandbox Code Playgroud)

问题是将“exec ...”处的单引号替换为双引号,并且工作正常。

工作版本

docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c "exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD""
Run Code Online (Sandbox Code Playgroud)


use*_*097 6

您的引用不正确,您不应该使用

'

"

反而