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



我正在学习一个关于docker堆栈、swarm、compose等的教程。

教师连接到群的VM,然后从该目录docker@node1:~/srv/swarm-stack-1:部署docker堆栈

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在我的电脑里在哪里?

因此,我试图绕过这个障碍,在虚拟机中创建一个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

那么,有人能帮助我了解如何在我的虚拟机中复制文件(从而找出它在我的电脑中的路径(,或者如何安装一个程序来安装vim,然后在我的VM中安装vim吗?

已解决

这里的解决方案不是ssh到VM中,而是使用更改到VM上下文

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

通过这样做,您处于虚拟机上下文中,因此docker node ls和所有群命令都可以工作,但您仍然可以访问本地文件,因为您不在虚拟机中。

因此,在运行了上面的两行之后,我终于可以将我的当前目录切换到包含我想在docker stack deploy命令中输入的docker compose文件的课程repo,并运行:

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

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

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

相关内容

最新更新