是否possible/sane在容器内开发Docker
Is it possible/sane to develop within a container Docker
我是 Docker 的新手,想知道是否有可能(并且是个好主意)在 docker 容器中进行开发。
我的意思是创建一个容器,执行 bash,安装和配置我需要的一切,然后开始在容器内开发。
容器成为我的主机(用于 CLI 相关工作)。
当我在旅途中(或当我购买一台新机器时),我可以推容器,然后将它拉到我的笔记本电脑上。
这就是必须保留和同步您的点文件的问题。
我还没有开始使用 docker,所以它是现实的还是应该避免的(spacke disk problem and/or pull/push timing issue)。
是的。这是一个好主意,具有正确的设置。您将 运行宁代码就像它是一个虚拟机。
用于创建构建系统的 Dockerfile 配置不完善,不会扩展 shell 变量,因此预安装应用程序可能有点乏味。另一方面,构建自己的镜像来创建新的用户和工作环境后,就不需要再次构建了,而且可以使用 运行 命令的 -v 参数挂载自己的文件系统,因此您可以在主机和容器机器中拥有您需要的文件。用途广泛。
> sudo docker run -t -i -v
/home/user_name/Workspace/project:/home/user_name/Workspace/myproject <container-ID>
我会逆势而行,说这是个坏主意。我曾尝试保留一个容器 "long running" 并对其进行了修改,但后来不小心丢失或删除了它。
在我看来,容器不应该是很长的 运行 虚拟机。它们只是图像的实例。启动它,停止它,杀死它,再启动它。
正如 Alex 所提到的,这当然是可能的,但在我看来这与 "Docker" 方式背道而驰。
我宁愿使用 VirtualBox 和 Vagrant 创建 VM 来开发。
Docker 容器开发非常方便。根据您的堆栈和偏好 IDE,您可能希望将编辑部分保留在主机外部,并根据 Alex 的建议将目录与主机的源挂载到容器中。如果这样做,请注意 macos x 上带有 boot2docker 的潜在性能问题。
我对推送图像以在开发环境之间同步的工作流程期望不高。恕我直言,将 Docker 文件与代码保持在一起并通过 SCM 同步是更直接的开始方向。我还携带支持 Makefiles 来构建图像/运行 容器相同的地方。
我是 Docker 的新手,想知道是否有可能(并且是个好主意)在 docker 容器中进行开发。 我的意思是创建一个容器,执行 bash,安装和配置我需要的一切,然后开始在容器内开发。
容器成为我的主机(用于 CLI 相关工作)。 当我在旅途中(或当我购买一台新机器时),我可以推容器,然后将它拉到我的笔记本电脑上。
这就是必须保留和同步您的点文件的问题。
我还没有开始使用 docker,所以它是现实的还是应该避免的(spacke disk problem and/or pull/push timing issue)。
是的。这是一个好主意,具有正确的设置。您将 运行宁代码就像它是一个虚拟机。
用于创建构建系统的 Dockerfile 配置不完善,不会扩展 shell 变量,因此预安装应用程序可能有点乏味。另一方面,构建自己的镜像来创建新的用户和工作环境后,就不需要再次构建了,而且可以使用 运行 命令的 -v 参数挂载自己的文件系统,因此您可以在主机和容器机器中拥有您需要的文件。用途广泛。
> sudo docker run -t -i -v
/home/user_name/Workspace/project:/home/user_name/Workspace/myproject <container-ID>
我会逆势而行,说这是个坏主意。我曾尝试保留一个容器 "long running" 并对其进行了修改,但后来不小心丢失或删除了它。
在我看来,容器不应该是很长的 运行 虚拟机。它们只是图像的实例。启动它,停止它,杀死它,再启动它。
正如 Alex 所提到的,这当然是可能的,但在我看来这与 "Docker" 方式背道而驰。
我宁愿使用 VirtualBox 和 Vagrant 创建 VM 来开发。
Docker 容器开发非常方便。根据您的堆栈和偏好 IDE,您可能希望将编辑部分保留在主机外部,并根据 Alex 的建议将目录与主机的源挂载到容器中。如果这样做,请注意 macos x 上带有 boot2docker 的潜在性能问题。
我对推送图像以在开发环境之间同步的工作流程期望不高。恕我直言,将 Docker 文件与代码保持在一起并通过 SCM 同步是更直接的开始方向。我还携带支持 Makefiles 来构建图像/运行 容器相同的地方。