Docker 在开发环境中

Docker in Development Environment

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

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

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

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

哦,我不关心硬件,因为我的机器目前支持我的要求。

您可以在“Run GitLab on a USB Stick with Docker

中的 docker 容器中看到 运行 GitLab 的示例

它使用 U 盘,但您可以使用 (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

您可能不需要特权: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 网络界面。