如何在mac os上连接docker镜像

时间:2016-02-24 02:14:23

标签: docker docker-machine

我在mac os上安装docker。我知道在我的mac os和docker镜像之间安装并运行了一个docker-machine。当我启动一个docker镜像时,我无法从我的mac os中ping图像,而是必须从docker-machine连接到这些图像。我想知道是否有办法允许我从mac os连接到docker镜像。

2 个答案:

答案 0 :(得分:1)

这通常通过将端口暴露给docker-machine来完成。例如,您可以映射SSH端口,如下所示:

docker run -d -p 2022:22 my-image

这会将docker-machine上的端口2022绑定到容器内的端口22。现在您可以使用docker-machine的IP获取访问权限(假设为default docker-machine):

ssh -p 2022 user@$(docker-machine ip default)

当然,这需要您的容器在端口22上公开服务。您必须参考容器的文档以查看正在公开的服务。

如果需要,您还可以通过localhost配置对服务的访问,而不是使用docker-machine IP。这样做需要在docker-machine驱动程序中进行一些网络配置。假设您使用的是VirtualBox(Mac OS X安装的默认驱动程序),您可以在VirtualBox UI中或通过VBoxManage(下面的文档链接)配置端口转发。

用于公开端口的Docker文档:https://docs.docker.com/engine/reference/run/#expose-incoming-ports

端口转发的VirtualBox文档: https://www.virtualbox.org/manual/ch06.html#natforward

答案 1 :(得分:0)

这是我理解的方式:

docker-machine就像一台虚拟机。容器基于虚拟机(docker-machine),但与其他容器(它拥有自己的文件系统,进程树等)完全隔离。图像只是一组已保存在一起的容器层。所以"图像"和#34;容器"在一些情况下可能会混杂在一起。容器通常指的是图像的最顶层(并且是"写"层)。

我解决这个问题的原因是因为从您的问题来看,我并不完全确定您尝试使用的术语。

您可以SSH到docker-machine图像以及容器。

要SSH到正在运行的容器,您可以使用

docker exec -it CONTAINER_NAME bash

要SSH到正在运行的docker-machine映像,您可以使用

docker-machine ssh DOCKER_IMAGE_NAME

我只能想到你想要SSH到docker-machine的几个原因,但是可以使用上面的命令。几乎总是,您将使用docker容器。这就是Docker的首要原因 - 集装箱管理系统。