Skip to content

Commit 0720832

Browse files
authored
Merge pull request DOClever#37 from kanlidy/master
修改docker说明文档:如何进行更新
2 parents ea826ab + 32f1ab2 commit 0720832

File tree

1 file changed

+118
-0
lines changed

1 file changed

+118
-0
lines changed

docker/README.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,121 @@ docker logs -f DOClever
125125
```
126126

127127
来查看容器打印的日志信息。
128+
129+
## 更新DOClever版本
130+
131+
### 备份数据
132+
133+
**重要:在升级之前,请备份所有数据**
134+
135+
备份数据:
136+
137+
1. 镜像备份: docker commit <镜像id> <取个名字>
138+
2. Mongodb备份,[请参考](https://segmentfault.com/a/1190000006236494)
139+
3. DOClever备份:在项目设置中,导出项目(这个就比较麻烦了,需要一个个项目导出,如果小团队少项目可以这样做)
140+
141+
142+
### 从3.x升级到4.x
143+
144+
之前的版本Mongo与DOClever合在一个容器中,那么需要先把mongo中的数据导出来。
145+
146+
docker exec -it DOClever /bin/bash
147+
148+
1. 进入到DOClever容器,导出数据库`/data/db`相关的文件到宿主机,然后使用`volume`参数,挂载到宿主机。
149+
150+
2. 然后使用`mongo`命令连接到数据库,导出数据库数据;
151+
152+
3. 使用最新的`docker-compoes.yml`文件启新的容器,使用`docker compose up -d`重新启动容器。
153+
154+
### 使用`docker-compose`更新
155+
156+
直接升级的前提:
157+
158+
1. mongodb的数据进行了本地化(使用了`volume`参数进行了本地化);
159+
2. 使用的是4.x以上的版本镜像(DOClever与mongo已经分离的版本)
160+
161+
version: "2"
162+
services:
163+
DOClever:
164+
image: lw96/doclever:latest-ubuntu
165+
restart: always
166+
container_name: "DOClever"
167+
ports:
168+
- 10000:10000
169+
volumes:
170+
- /hostdir/file:/root/DOClever/data/file
171+
- /hostdir/img:/root/DOClever/data/img
172+
- /hostdir/tmp:/root/DOClever/data/tmp
173+
environment:
174+
# - DB_HOST=mongodb://localhost:27017/DOClever
175+
- PORT=10000
176+
links:
177+
- mongo:mongo
178+
179+
mongo:
180+
image: mymongo
181+
restart: always
182+
container_name: "mongodb"
183+
volumes:
184+
- /data/db:/data/db
185+
186+
187+
修改`image: lw96/doclever:latest-ubuntu` 这个地方的版本号,版本号请参考:[https://hub.docker.com/r/lw96/doclever/tags/](https://hub.docker.com/r/lw96/doclever/tags/)
188+
189+
190+
然后使用`docker-compose up -d`进行更新。
191+
192+
### mongodb没有本地化数据的更新方法
193+
194+
如果你之前使用的是默认的`docker-compose.yml`起的docker容器,那么mongo默认是没有进行`volume`本地化的,那么备份mongo镜像:
195+
196+
docker commit <mongodb-id> mymongo
197+
198+
修改`docker-compose.yml`文件如下:
199+
200+
version: "2"
201+
services:
202+
DOClever:
203+
image: lw96/doclever:latest-ubuntu
204+
restart: always
205+
container_name: "DOClever"
206+
ports:
207+
- 10000:10000
208+
volumes:
209+
- /hostdir/file:/root/DOClever/data/file
210+
- /hostdir/img:/root/DOClever/data/img
211+
- /hostdir/tmp:/root/DOClever/data/tmp
212+
environment:
213+
# - DB_HOST=mongodb://localhost:27017/DOClever
214+
- PORT=10000
215+
links:
216+
- mongo:mongo
217+
218+
mongo:
219+
image: mymongo
220+
restart: always
221+
container_name: "mongodb"
222+
volumes:
223+
- /data/db:/data/db
224+
225+
### 如果使用的数据库为非本地mongodb
226+
227+
修改`docker-compose.yml`文件如下:
228+
229+
version: "2"
230+
services:
231+
DOClever:
232+
image: lw96/doclever:latest
233+
restart: always
234+
container_name: "DOClever"
235+
ports:
236+
- 10000:10000
237+
volumes:
238+
- /hostdir/file:/root/DOClever/data/file
239+
- /hostdir/img:/root/DOClever/data/img
240+
- /hostdir/tmp:/root/DOClever/data/tmp
241+
environment:
242+
- DB_HOST=mongodb://remoteIP:remotePort/DOClever
243+
- PORT=10000
244+
245+
然后使用`docker-compose up -d`进行更新。

0 commit comments

Comments
 (0)