上两个笔记里已经完成了对docker里镜像、容器以及仓库的最基本操作,操作一遍之后对docker应该可以有大致的了解,明白他是什么样的一个东东了,至于笔记1中开头所说的,用docker替换掉vmware,excuse me,明明之前说的docker是安装在linux里的,如果已经有了linux,还需要linux里装docker,docker里再装个linux吗???哈哈,docker有windows版本的呀!!!喏,链接丢给你,自己下载后手动安装去吧!这个不用多说,会网上冲浪的人应该都没啥问题,安装过程中会自动重启,会要求开启hyper-v,点击确定就可以了(我的是win10公司电脑),不过之后,vmware里的虚拟机就打不开了!!回头再查查看有啥解决办法没有,反正现在vmware暂时还用不着!吼吼,应该是hyper-v跟vmware有冲突。
好啦,一串动作猛如虎之后,windows docker安装完毕,双击桌面小海豚就可以打开运行docker啦!不过除了右下角闪动的小海豚图标,好像也没有出现想象中的桌面窗口啊!!不要急,右击小海豚试试,试试就试试,出来一排选项,然鹅也没无什么乱用,除了可以登录用户之外也并没有什么骚操作!哈哈,其实是找错地方的啦!打开电脑的cmd窗口试一下(win+r,输入cmd回车),再输入docker images,当当当当,熟悉的指令,熟悉的味道!(见本文抬头图片),至此,你就可以在windows下cmd中像linux里一样使用docker指令以及进入docker内的linux了!当然你首先要用先把之前上传好的镜像下载下来并且运行启动容器才行!更多指令参考上一篇笔记。
docker pull elaiz/ubuntu:ssh
docker run -it elaiz/ubuntu:ssh --hostname xxx --name xxxx elaiz/ubuntu:ssh
你可能会说,不想一直在cmd里输入指令,管理自己的linux,肿么办呢,ubuntu里的ip在cmd里是ping不通的,也就意味着没办法securecrt 中ssh到此ubuntu!!不方便!!其实不管是linux中还是windows中,docker中的容器中的linux都是通过NAT来实现容器内系统连接网络的,但是直接ping 容器的ip是ping不通的,不信你在linux里看下ifconfig或者windows里看下网络链接,是不是多了几个虚拟网卡,这些都是安装docker时候自动生成的。既然不能直接ssh,那只好绕道而行了:生成容器时做一个端口转发就可以了。
C:Userselaizqu>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
177f2f3418c0 1196ea15dad6 "/usr/bin/supervisord" 40 hours ago Up 17 minutes 0.0.0.0:10022->22/tcp vigilant_fermat
C:Userselaizqu>docker run -itd -p 10022:22 1196ea15dad6
//将本机10022端口,映射到容器的22端口。
C:Userselaizqu>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
177f2f3418c0 1196ea15dad6 "/usr/bin/supervisord" 40 hours ago Up 17 minutes 0.0.0.0:10022->22/tcp vigilant_fermat
docker exec -it 177f2f3418c0 /bin/bash
//进入容器
然后修改容器密码,启动ssh服务,跟之前所有的操作都是一样的。接下来见证奇迹的时刻到了!打开你的securecrt(xshell,putty啥的都可以啦),配置如下:
连接成功,至此,docker已经完全可以取代wmware啦,开机后直接双击小海豚,打开securecrt就直接连上ubuntu啦(创建容器时候的端口转发是一直存在的,不会因为开关机而消失)