Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解docker原理_Docker_Web Deployment - Fatal编程技术网

理解docker原理

理解docker原理,docker,web-deployment,Docker,Web Deployment,我制作了一个非常简单的golang服务器,需要将其部署到digitalocean droplet上 我知道在使用cgo的情况下,交叉构建go应用程序可能会有问题,所以为了以后不再考虑这个问题,我决定使用docker,所以我的应用程序将始终在相同的环境中构建和运行 我不明白的第一件事是开发一个应用程序。创建docker文件时,我使用命令将项目目录中的文件添加到新创建的docker映像中。然后运行从该图像创建的容器。但是如果我编辑代码呢据我所知,我必须停止容器,删除一个图像,然后重新构建它。对于这种

我制作了一个非常简单的golang服务器,需要将其部署到digitalocean droplet上

我知道在使用cgo的情况下,交叉构建go应用程序可能会有问题,所以为了以后不再考虑这个问题,我决定使用docker,所以我的应用程序将始终在相同的环境中构建和运行

我不明白的第一件事是开发一个应用程序。创建docker文件时,我使用命令将项目目录中的文件添加到新创建的docker映像中。然后运行从该图像创建的容器。但是如果我编辑代码呢据我所知,我必须停止容器,删除一个图像,然后重新构建它。对于这种常见的情况来说,这有点棘手——或者我做错了什么

第二个问题——我已经在DO上创建了docker droplet:部署我的应用程序的方法是什么

  • 我必须把我的图像推到任何docker存储库,然后把它拉到水滴上
  • 或者我可以直接上传
  • 或者我必须将我的源代码scp到Drop,并在本地机器上运行相同的过程,构建映像,然后运行容器
但是如果我编辑代码呢据我所知,我必须停止容器,删除一个图像,然后重新构建它。对于这种常见的情况来说,这有点棘手——或者我做错了什么

不要删除图像,只是重建它。它将比第一次初始构建快得多。还有,为什么这很棘手?这只是一个或两个命令,您可以创建一个bash或.bat脚本,如果它变得烦人

我已经在DO上创建了docker droplet:部署我的应用程序的方法是什么

这三种选择都是可能的。对于第二个,您必须将VM设置为docker hub repo,这可能超出您的需要。使用docker hub也不错。您也可以在服务器上构建映像。我建议使用docker hub,这样比较方便,并在服务器上设置了watchtower,以便在新图像推送时重新启动web应用程序

编辑:上面的建议是针对虚拟机而不是docker水滴。我不熟悉DO,但这篇文章应该有帮助: