注意点一:镜像尽量放在指令的后面,指令中的元素还是有大致的排列顺序的,顺序排列不当,会产生错误;一些参数一般放在镜像前边进行设置,这也符合通常的逻辑规律。
# 譬如错误用法(其中 镜像ID[6c33300af520] 与 /bin/bash 距离很远,会报错):
docker run -it 6c33300af520 --mount type=bind,source=/home/abc_test/,target=/home/ /bin/bash -c "ls && ls"
# 如上面的指令排列顺序则报错:
[
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"--mount\": executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled
]
# 镜像的名字要紧挨着 /bin/bash 指令,正确用法如下
docker run -it --mount type=bind,source=/home/abc_test/,target=/home/ 6c33300af520 /bin/bash -c "ls && ls"
docker run -it -v /home/abc_test/:/home/ 6c33300af520 /bin/bash -c "ls && ls"
注意点二:指令的一些内部元素之间不要加 不必要的 空格,不然也会出错。
# 在使用--mount挂载目录时,mount管辖的指令间不能随意留空格;
# 譬如,如下的错误用法(target与前面的逗号[,]隔了一个空格,会报错):
docker run -d -it --name "test_model" --mount type=bind,source=/home/abc_test/, target=/home/,readonly 6c33300af520