在生产环境编辑完代码后,你们是怎么部署的?
我现在想到的方式有:
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 下捕捉崩溃日志的方式
谢谢
1
barbery 2017-10-27 11:29:38 +08:00
正确做法是 2,从私有仓库去拉取,私有仓库毕竟是有版本管理的。懒的话,可以直接部署 DockerFile 上去 build,但是不是那么推荐
|
2
cy97cool 2017-10-27 13:08:15 +08:00 via Android
|
3
jjianwen68 2017-10-27 13:17:10 +08:00
不用每次用完整镜像吧,弄个基础镜像,后面每次挂载工程目录,这样不行吗
|
4
Havee 2017-10-27 13:42:09 +08:00
数据,不要放镜像中,否则某次意外导致服务重启,就要哭了。
|
5
recall704 2017-10-27 13:48:24 +08:00
我们都是私有仓库,镜像有分层机制,如果拉过了,就不需要再拉取。
类似增量更新。 |
6
puyo 2017-10-27 13:54:35 +08:00 via Android
借楼问一下,我有个项目是用 docker 部署,单机上放三个容器,一个 nginx、一个 mysql、一个 django,这样单机上用 docker 是好的实践吗?以及会不会有性能问题(相比较与在单机上直接部署)
|
7
whileFalse 2017-10-27 14:19:22 +08:00
楼主镜像里装了什么这么大?
可以试试两段构建。 |
8
fanjianhang 2017-10-27 16:55:59 +08:00
是否可以加参数- o 直接输出成镜像格式,然后在线上 load
|
9
lincolnhuang 2017-10-27 17:13:51 +08:00
LZ 生产环境不是线上环境?
|
11
helloworld12 OP @lincolnhuang 写错了,开发环境
|