如何在本地虚拟机中复制文件或如何在本地虚拟机中编辑 yml 文件? (docker 堆栈)

How to copy files inside a local virtual machine or how to edit a yml file inside a local virtual machine? (docker stack)

我正在学习有关 docker 堆栈、集群、组合等的教程

老师连接到 swarm 的一个 VM,然后从这个目录部署一个 docker 堆栈 docker@node1:~/srv/swarm-stack-1:

docker stack deploy -c example-voting-app-stack.yml voteapp

但是,我无法到达那里,因为我不知道如何将 yaml compose 文件从课程存储库复制到 VM 内的目录。

如何找出 docker@node1 在我的电脑中的位置?

这是我尝试过的:

docker-machine start node1 

Docker-machine ssh node1

所以我得到

Tommaso@N552VW-Tommaso MINGW64 /c/Applicazioni_Tommaso/Docker Toolbox
$ Docker-machine ssh node1
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

然后

docker@node1:~/srv/swarm-stack-1$ pwd
/home/docker

好的,但是 /home/docker 在我的电脑中的什么位置?

所以我试图通过在 VM 中创建一个 yml 文件然后编辑它来绕过障碍,而不是从另一个目录复制它。

# create the directory
docker@node1:~$ mkdir srv
docker@node1:~$ cd srv
docker@node1:~/srv$ mkdir swarm-stack-1
docker@node1:~/srv$ cd swarm-stack-1
docker@node1:~/srv/swarm-stack-1$

# create the yml file
touch example-voting-app-stack.yml

我在这里停下来,因为我不知道如何编辑文件。

我也不能安装 vim 或安装程序来安装 vim。

这是我试过的:

docker@node1:~/srv/swarm-stack-1$ vim example-voting-app-stack.yml
-bash: vim: command not found

docker@node1:~/srv/swarm-stack-1$ apt-get vim
-bash: apt-get: command not found
docker@node1:~/srv/swarm-stack-1$ yum install vim
-bash: yum: command not found
docker@node1:~/srv/swarm-stack-1$ apk install vim
-bash: apk: command not found
docker@node1:~/srv/swarm-stack-1$ sudo apt-get install vim
sudo: apt-get: command not found

docker@node1:~/srv/swarm-stack-1$ nano
-bash: nano: command not found

所以,有人可以帮助我了解如何在我的 VM 中复制文件(以便找出它在我的 PC 中的路径)或如何安装程序以安装 vim 然后安装 vim 在我的虚拟机中 ?

已解决

这里的解决方案不是通过 ssh 进入 VM,而是通过以下方式切换到 VM 上下文:

docker-machine env node1
eval $(docker-machine env node1)

通过这样做,您处于 VM 上下文中,因此 docker node ls 并且所有 swarm 命令都可以工作,但是您仍然可以访问本地文件,因为您不在 VM 中。

所以,在 运行 上面的两行之后,我终于可以将我的当前目录切换到包含我想在 [=24= 中输入的 docker-compose 文件的课程仓库] stack deploy 命令,和 运行:

docker stack deploy -c example-voting-app-stack.yml voteapp

完成后,要将上下文更改回本地计算机,请执行以下操作:

docker-machine env -u
eval $(docker-machine env -u)