bash: vmrun.exe: command not found / vmware无法打开docker

点击Docker Quickstart Terminal 后屏幕显示如下:

bash: vmrun.exe: command not found
Running pre-create checks...
Creating machine...
(default) Copying C:\Users\hp\.docker\machine\cache\boot2docker.iso to C:\Users\hp\.docker\machine\machines\default\boot2docker.iso...
(default) Creating SSH key...
(default) Creating VM...
(default) Creating disk 'C:\Users\hp\.docker\machine\machines\default\default.vmdk'
(default) Virtual disk creation successful.
(default) Starting default...
(default) Waiting for VM to come online...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: C:\d_my_virtualMachine\Docker Toolbox\docker-machine.exe env default

出了这个问题是因为它找不到 vmrun.exe命令,也就找不到启动的docker系统文件,只好重新创建一个(把之前的系统删除了)docker系统以供使用。
原因就在于我之前做了一些修改,其中就包含了修改docker的启动文件:start.sh

老师建议对这类情况使用vmware workstation 打开 C:\Users\hp.docker\machine\machines\default\default.vmx 然后在里面输入ifconfig | more ,
记录下eth0 的ip,(docker IP)用secureCRT连接该docker IP即可使用。

其实secureCRT和Docker Quickstart Terminal 其实相当于可做人机交互的客户端(类似电脑显示的人机交互界面),背后连接使用的是docker系统(电脑操作系统),vmware workstation 作系统运作的载体(类似电脑的硬件)。

vmware打开docker报错:operation system no found

备注:我之前试过修改start.sh 的export路径,再用vmware workstation开启docker系统default,屡次报错:
在这里插入图片描述
在这里插入图片描述
最后是把原本的start.sh还原为最初复制粘贴别人正确的代码并移除了default后再次并打开default才正确启动。也许我之前的路径更改尝试并没有错,只是要让系统能识别并运行更改后的文件,还是要移除default后再次打开。
Docker Toolbox\start.sh 里的正确代码(export PATH要符合自己的路径,其余的复制粘贴即可,要用vmware运行docker就要这么做):

#!/bin/bash

export PATH="$PATH:/c/Program Files (x86)/VMware/VMware Workstation"

trap '[ "$?" -eq 0 ] || read -p "Looks like something went wrong in step ´$STEP´... Press any key to continue..."' EXIT

VM=${DOCKER_MACHINE_NAME-default}
DOCKER_MACHINE=./docker-machine.exe

BLUE='\033[1;34m'
GREEN='\033[0;32m'
NC='\033[0m'


if [ ! -f "${DOCKER_MACHINE}" ]; then
  echo "Docker Machine is not installed. Please re-run the Toolbox Installer and try again."
  exit 1
fi

vmrun.exe list | grep "${VM}" &> /dev/null
VM_EXISTS_CODE=$?

set -e

STEP="Checking if machine $VM exists"
if [ $VM_EXISTS_CODE -eq 1 ]; then
  "${DOCKER_MACHINE}" rm -f "${VM}" &> /dev/null || :
  rm -rf ~/.docker/machine/machines/"${VM}"
  #set proxy variables if they exists
  if [ -n ${HTTP_PROXY+x} ]; then
    PROXY_ENV="$PROXY_ENV --engine-env HTTP_PROXY=$HTTP_PROXY"
  fi
  if [ -n ${HTTPS_PROXY+x} ]; then
    PROXY_ENV="$PROXY_ENV --engine-env HTTPS_PROXY=$HTTPS_PROXY"
  fi
  if [ -n ${NO_PROXY+x} ]; then
    PROXY_ENV="$PROXY_ENV --engine-env NO_PROXY=$NO_PROXY"
  fi
  "${DOCKER_MACHINE}" create -d vmwareworkstation $PROXY_ENV "${VM}"
fi

STEP="Checking status on $VM"
VM_STATUS="$(${DOCKER_MACHINE} status ${VM} 2>&1)"
if [ "${VM_STATUS}" != "Running" ]; then
  "${DOCKER_MACHINE}" start "${VM}"
  yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}"
fi

STEP="Setting env"
eval "$(${DOCKER_MACHINE} env --shell=bash ${VM})"

STEP="Finalize"
clear
cat << EOF
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
EOF
echo -e "${BLUE}docker${NC} is configured to use the ${GREEN}${VM}${NC} machine with IP ${GREEN}$(${DOCKER_MACHINE} ip ${VM})${NC}"
echo "For help getting started, check out the docs at https://docs.docker.com"
echo
cd

docker () {
  MSYS_NO_PATHCONV=1 docker.exe "$@"
}
export -f docker

if [ $# -eq 0 ]; then
  echo "Start interactive shell"
  exec "$BASH" --login -i
else
  echo "Start shell with command"
  exec "$BASH" -c "$*"
fi

参考:
总的来说我是通过用vmware workstation 打开docker系统default,再用secureCRT连接docker系统才解决了docker无法保存镜像的问题。secureCRT是企业常用的,方便操作docker

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值