软件环境:Windows,Docker Machine,
问题描述:使用docker命令行客户端管理UCP时,对解压后的ucp-bundle-admin.zip,执行env.sh或env.cmd都不成功。
原因分析:
(1)env.sh或env.cmd逻辑很简单,就是设置中
env.sh
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH="$(pwd)"
export DOCKER_HOST=tcp://192.168.99.101:443
env.cmd
set DOCKER_TLS_VERIFY=1
set DOCKER_CERT_PATH=%~dp0
set DOCKER_HOST=tcp://192.168.99.101:443
(2)在windows环境中不存在source指令,Git提供的bash环境中无法执行source env.sh
,也无法使用export
一行行执行命令。
解决办法:命令行中直接执行DOCKER_TLS_VERIFY=1
(3)在cmd下直接运行env.cmd,或直接将其中的命令复制出来一行行执行,不起作用。
原因是%~dp0
本来是当前目录的绝对路径,但在本人机器上就是解析不了,它只是这样的字符串。
因此,使用echo %DOCKER_CERT_PATH%
总是显示%~dp0
,而不路径字符串。
解决办法:一行行执行命令,将相对路径的特殊表示方法用绝对路径字符串替换!
示例
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=C:\Users\Admin\ucp-admin
DOCKER_HOST=tcp://192.168.99.101:443
注意:Windows操作系统,使用Bash命令时,也注意DOCKER_CERT_PATH必须是Windows路径表示法。