在linux下我们可以在docker中新建容器,然后通过端口转发直接访问到容器。但是在mac下中间又通过了
一层虚拟机,所以端口转发就需要在多做一点。
1 把本地端口和虚拟机对应起来:可以通过命令来做:
#VBoxManage modifyvm "boot2docker-vm" --natpf1 "containerssh,tcp,,2222,,2222"
也可以通过手动添加:
点击上图端口转发即可添加。
2 根据镜像建立容器,将虚拟机得2222端口映射到22,并打开ssh服务
? ~ docker run -ti -p 2222:22 sshd:ubuntu2
打开ssh服务:
? ~ docker start -i 88
root@886ab361140c:/# ssh localhost
ssh: connect to host localhost port 22: Connection refused
root@886ab361140c:/# service ssh start
* Starting OpenBSD Secure Shell server sshd [ OK ]
root@886ab361140c:/#
3 在宿主机上ssh链接到容器:
? ~ ssh root@127.0.0.1 -p 2222
Warning: Permanently added ‘[127.0.0.1]:2222‘ (RSA) to the list of known hosts.
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 4.0.3-boot2docker x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Tue Jun 9 03:41:46 2015 from 10.0.2.2
root@886ab361140c:~#
只是不知道为什么这里等了一会才连接上。
最后就是端口映射成功了,就可以在容器里做各种事,比如nginx,apache,数据库等并在容器外访问了。
4 虚拟机网络方面得配置
另外如果使用虚拟机里新建linux来做:怎么让虚拟机里的linux即能访问外网又能被外网访问到:
虚拟机里得linux要访问到外网是通过网桥到外网实现,外网宿主机要访问到虚拟机里得linux是通过host-only方式。
所以网卡部分需要配置两块网卡:
原文地址:http://blog.csdn.net/u010387163/article/details/46429493