【问题标题】:How to Setup a Docker Tomcat Container on Mac OS X如何在 Mac OS X 上设置 Docker Tomcat 容器
【发布时间】:2015-06-11 19:08:11
【问题描述】:

我是 Docker 新手...

据我了解,Docker 只兼容 Linux,是否可以在 Mac 上运行 docker 用于开发目的?

我使用自制软件安装了 virtualbox,并尝试创建一个 virtualbox 实例。我安装了 docker,但无法让我的 mac 与 vm docker 实例通信。我的最终目标是在 docker 容器上运行一个本地可调试的 tomcat 实例。

任何帮助或提示都会有所帮助。

【问题讨论】:

标签: macos tomcat docker


【解决方案1】:

信息:

因为Docker 仅在 Linux 上运行,您需要在本地计算机上安装某种虚拟实例。一种简单且流行的方法是安装 Boot2dockerVirtualBox。 VirtualBox 是 Boot2docker 的一个依赖。您可以从他们的网站下载、设置和安装最新版本,或者如果您使用的是 Homebrew,正如您所提到的,您可以通过一个步骤快速获取工作二进制文件。

安装 boot2docker 后,您就可以使用 Boot2docker 创建 Tomcat 容器了。您可以通过搜索 Docker 的社区存储库 docker hub registry 找到预配置的 tomcat image

注意事项:

  • 每次执行 docker run 命令都会创建一个新容器。
  • 运行 Docker 的 VM 需要 ssh 私有/公共加密密钥握手才能连接。如果您按照以下我的步骤操作,将为您生成一个。

使用 tomcat 镜像设置 Tomcat 的步骤:

  1. 打开终端并运行以下命令:brew install boot2docker
  2. 使用 init 命令创建一个新的 Boot2Docker VM 实例:boot2docker init
  3. 在终端中运行此命令将本地端口转发到虚拟机:
对于 {10000..10999} 中的我;做 VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,$i,,$i"; VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port$i,udp,,$我,,$i";完成
  1. 启动 boot2docker 守护进程:boot2docker startboot2docker up
  2. 启动 docker 后,将上一条命令中显示的导出复制到剪贴板
  3. 使用文本编辑器编辑您的 bash 配置文件 ~/.bash_profile(或者如果您使用的是 zsh,请编辑资源配置文件 ~/.zshrc)(我更喜欢使用 Sublime 文本):subl .zshrc *注意:这将永久保存 docker env 变量。
  4. 将导出内容粘贴到该文件中并保存
  5. 对文件执行源命令:source .zshrc
  6. 拉取最新的tomcat镜像创建容器并启动tomcat:docker run -it --rm -p 10080:8080 tomcat:8.0 *注意:这会将你本地的10080端口转发到虚拟机的8080端口。
  7. 转到 http://localhost:10080,您应该会看到 tomcat 起始页!

有用的 Docker 命令:

  • $ boot2docker 状态
  • $ docker 版本
  • $ docker ps #显示正在运行的容器
  • $ docker ps -a # 显示所有容器
  • $ docker exec -it NAME /bin/bash #在容器上启动 bash 会话。 -i = 交互式,-t = tty

外部资源:

【讨论】:

  • +1:很好的解释。一个问题。第10步,不应该是DOCKER_HOSTexport上指定的ip而不是localhost吗?
  • 任何一个都可以,你也可以去虚拟机的up地址
  • 嗯..我试过localhost。似乎没有用,虽然我能够看到带有DOCKER_HOST ip 的tomcat UI。
  • 你做了第 3 步吗?在哪里将本地端口请求转发到 docker vm?还要仔细检查您要访问的端口。在我的示例中,它不是 1080 或 8080,而是 10080,并且与步骤 3 中的端口范围匹配
  • 啊,我的错。是的,我错过了那部分!感谢您的及时回复!欣赏它! :)
【解决方案2】:

大多数人使用boot2docker 在 Mac 上运行。您可能还想查看Kitematic,它为您提供了一个可以使用的 GUI。

最后,未来可能是使用docker machine,它可以为你配置一个VM。

【讨论】:

  • Docker Machine 看起来很有趣;谢谢指点。
【解决方案3】:

Docker 需要 Linux Kernel 特性,因此它不能在 OSX 上本地运行。

请参阅 Boot2Docker。此链接为您提供了如何开始的说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 2012-06-25
    • 2013-07-27
    • 2017-01-16
    • 2011-03-06
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多