docker 部署方式

2017-10-27 10:57:38 +08:00
 helloworld12

在生产环境编辑完代码后,你们是怎么部署的?

我现在想到的方式有:

1.在生产环境里生成镜像文件,然后把镜像文件拖到线上,再装载运行镜像文件
在生产环境:

docker save xxxImage > xxxImage.tar

在线上环境:

docker load < xxxImage.tar

缺点是感觉镜像文件太大了,600 多 M,传到服务器要好久

2.先 push 到私有仓库,然后再从私有仓库拉取,然后运行容器
在生产环境:

docker push  xxxServer:port/xxxImage

在线上环境:

docker pull   xxxServer:port/xxxImage

请教下,你们是怎么做的

现在我生产环境是 window,线上环境是 window,然后为了捕捉 golang 的崩溃日志,需要使用 linux 容器( linux 下,才可以调用 syscall.Dup2 函数)

我要怎么部署比较合适,或者有什么别的能在 window 下捕捉崩溃日志的方式

谢谢

2128 次点击
所在节点    问与答
11 条回复
barbery
2017-10-27 11:29:38 +08:00
正确做法是 2,从私有仓库去拉取,私有仓库毕竟是有版本管理的。懒的话,可以直接部署 DockerFile 上去 build,但是不是那么推荐
cy97cool
2017-10-27 13:08:15 +08:00
镜像文件太大应该考虑压缩 600 多 M 压缩成 7z 可能不到 200M

https://py3.io/Docker.html
其中搬运镜像部分
jjianwen68
2017-10-27 13:17:10 +08:00
不用每次用完整镜像吧,弄个基础镜像,后面每次挂载工程目录,这样不行吗
Havee
2017-10-27 13:42:09 +08:00
数据,不要放镜像中,否则某次意外导致服务重启,就要哭了。
recall704
2017-10-27 13:48:24 +08:00
我们都是私有仓库,镜像有分层机制,如果拉过了,就不需要再拉取。
类似增量更新。
puyo
2017-10-27 13:54:35 +08:00
借楼问一下,我有个项目是用 docker 部署,单机上放三个容器,一个 nginx、一个 mysql、一个 django,这样单机上用 docker 是好的实践吗?以及会不会有性能问题(相比较与在单机上直接部署)
whileFalse
2017-10-27 14:19:22 +08:00
楼主镜像里装了什么这么大?
可以试试两段构建。
fanjianhang
2017-10-27 16:55:59 +08:00
是否可以加参数- o 直接输出成镜像格式,然后在线上 load
lincolnhuang
2017-10-27 17:13:51 +08:00
LZ 生产环境不是线上环境?
htfy96
2017-10-27 17:42:46 +08:00
@puyo #6 注意选择 storage driver 和 port mapping 方式应该就没问题
helloworld12
2017-10-27 17:58:35 +08:00
@lincolnhuang 写错了,开发环境

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/401144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX