我正在学习一个关于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)