【问题标题】:Docker in Development Environment开发环境中的 Docker
【发布时间】:2016-03-09 04:57:15
【问题描述】:

我希望设置我的开发机器(一台物理机器)来提供一种方法来管理我运行 .NET 和 PHP 开发的需求。这相当容易,但是当我需要 Apache 和 IIS 时会出现问题,而对于版本控制,我喜欢 gitlab ce,它在 Windows 上不起作用。所以,我的主机是win10,我用一个单独的linux盒子来运行我的gitlabapache

但是现在那台机器被烧毁了,我正在寻找一种在一台机器上运行所有这些的方法,因为我不想投资单独的机器。我正在尝试研究 Docker,因为它似乎可以解决我的问题(也不确定)。因此,我在我的 Win 10 上安装了 DockerHyper-V,并且能够在 docker 容器中运行 CentOS 并在 ApacheGitLab 上安装 CentOs

但是一旦退出centos,一切都消失了。我知道我需要保存机器状态或 docker 客户端的状态,但我没有找到方法来做到这一点,或者它们对我来说理解起来相当复杂。我也没有找到一种方法,当我启动我的开发机器时,我怎样才能让它启动那台 CentOS 机器并让它在网络上可用。我正在 docker 文档和各种博客论坛中搜索。

我的问题是:由于我现在不太了解 docker,我想在上面的场景中使用它好吗?有没有更好的方法呢?如果你能帮助解决我的问题对我有好处,但如果我走对了方向,如果不能指导我。

哦,我不关心硬件,因为我的机器现在确实支持我的要求。

【问题讨论】:

    标签: linux windows apache docker gitlab


    【解决方案1】:

    您可以在 "Run GitLab on a USB Stick with Docker" 中看到在 docker 容器中运行 GitLab 的示例

    它使用 USB 记忆棒,但您可以使用 (Windows) 主机上的文件夹。

    docker-compose.yml

    gitlab:  
     container_name: gitlab
     image: gitlab/gitlab-ce:8.5.3-ce.0
     hostname: gitlab
     environment:
       GITLAB_OMNIBUS_CONFIG: |
         external_url 'http://127.0.0.1:8050'
         gitlab_rails['gitlab_shell_ssh_port'] = 522
     ports:
      - "8050:8050"
      - "522:22"
     volumes:
      - /media/elton/usb-gitlab/gitlab/config:/etc/gitlab
      - /media/elton/usb-gitlab/gitlab/logs:/var/log/gitlab
      - /media/elton/usb-gitlab/gitlab/data:/var/opt/gitlab
     privileged: true
    

    您可能不需要 privileged: true 因为您不需要访问 USB 密钥。
    并将/media/elton/usb-gitlab/gitlab 替换为Windows 路径(以/c/Users 开头为/c/Users/yourLogin/path/to/gitlab,因为只有该文件夹会自动安装在boot2docker VM 中)

    然后:

    cd /c/Users/yourLogin/path/to/gitlab  
    docker-compose up -d  
    

    在你的仓库中,你会添加:

    git remote add origin ssh://git@127.0.0.1:522/<project>/<yourRepo>.git  
    

    您可以转到http://127.0.0.1:8050/ 以查看 GitLab 网络界面。

    【讨论】:

    • 谢谢这很容易,现在我只需要测试它是否保持持久性以及如何让我的 docker 继续启动。
    • @SumitGupta 您只需要在开始在新的 Windows 会话中工作时启动您的 docker-machine:docker-machine start。
    • Hyper-V 在 Windows 启动时启动我的默认 Docker 机器,我猜 gitlab 会从它开始吗?由于正在进行一些长时间的处理,现在无法重新启动。 :) 但我很快就会自己尝试。
    • 谢谢,似乎可行,并且在重新启动时它在那里工作。虽然它没有选择我定义/d/gitlab 的路径,还是我应该定义d:/gitlab,因为这就是Windows 通常使用路径的方式?为此我如何停止运行 git?
    • @SumitGupta boot2docker(使您能够使用 docker 的 Linux VM)只知道/c/Users。您需要在 VirtualBox 和 boot2docker 上安装 /d/gitabstackoverflow.com/questions/35495639/…
    猜你喜欢
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    相关资源
    最近更新 更多