Skip to content

Commit fd7e94f

Browse files
📚 Enhance Docker documentation with build, run, and compose instructions
- Added detailed Docker commands for building, tagging, logging in, pushing, pulling, running, stopping, and removing containers. - Introduced a section on using docker-compose for multi-container applications, including directory structure and YAML file examples. - Updated headings for better organization and clarity in the documentation. - Included troubleshooting tips and common commands for managing Docker environments.
1 parent f47bf81 commit fd7e94f

File tree

1 file changed

+204
-3
lines changed

1 file changed

+204
-3
lines changed

docs/docs/云原生开发/容器化.md

Lines changed: 204 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,36 @@ docker -v
3838

3939
### 核心配置
4040

41+
```bash showLineNumbers
42+
# 构建镜像
43+
docker build -t llmchat:0.0.2 .
44+
45+
# 打标签
46+
docker tag llmchat:0.0.2 jiangmiemie/llmchat:0.0.2
47+
48+
# 登录
49+
docker login
50+
51+
# 推送
52+
docker push jiangmiemie/llmchat:0.0.2
53+
54+
# 拉取
55+
docker pull jiangmiemie/llmchat:0.0.2
56+
57+
# 启动
58+
docker run -d -p 8501:8501 jiangmiemie/llmchat:0.0.2
59+
60+
# 查看
61+
docker ps -a
62+
63+
# 停止
64+
docker stop {container_id}
65+
66+
# 删除
67+
docker rm {container_id}
68+
```
69+
70+
4171
#### build
4272

4373
build一个镜像的时候,如下关键字必不可少:
@@ -196,7 +226,7 @@ exit
196226
docker cp 容器id:文件路径 本机路径
197227
```
198228

199-
### 实战案例:群晖服务器搭建
229+
## 实战案例:群晖服务器搭建
200230

201231
首先确保自己对每个环节的设备都拥有绝对控制权,在常见的家庭网络环节下,
202232

@@ -218,7 +248,7 @@ docker cp 容器id:文件路径 本机路径
218248

219249
由于群晖有很多版本,路由器也有很多版本,我这里只是提供一个思路,不保证一定能成功。
220250

221-
## 群晖
251+
### 群晖
222252

223253
在群晖套件中心找到 Container Manager
224254

@@ -232,14 +262,185 @@ docker cp 容器id:文件路径 本机路径
232262

233263
关于映射:如果你把宝塔的登录端口8888映射为群晖服务器的4444,那么此时你就可以通过群晖的4444端口访问宝塔了。
234264

235-
## 路由器
265+
### 路由器
236266

237267
开启设备映射,将群晖设为固定的IP地址,将群晖的端口映射到路由器的端口。
238268

239269
如果你把群晖的4444端口映射为80,并且把域名绑定到公网IP上时
240270

241271
那么当你访问这个域名会跳转到路由器80端口,再跳到群晖的4444端口,再跳到群晖宝塔容器的8888端口。
242272

273+
## docker-compose
274+
275+
docker-compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它通过一个 YAML 文件来配置应用程序的服务、网络和卷,并使用一个命令来启动、停止和重新启动这些服务。当你需要启动多个容器时,docker-compose 可以简化这个过程。
276+
277+
### 目录结构
278+
279+
```bash showLineNumbers
280+
├── backend
281+
│ ├── Dockerfile
282+
│ ├── chat_routers.py
283+
│ └── requirements.txt
284+
├── frontend
285+
│ ├── Dockerfile
286+
│ ├── requirements.txt
287+
│ └── _streamlit
288+
│ └── streamlit_app.py
289+
├── docker-compose.yml
290+
└── README.md
291+
```
292+
293+
### 文件示例
294+
295+
```yaml showLineNumbers
296+
version: '3.8' # 指定 Docker Compose 文件的版本
297+
298+
services: # 定义服务
299+
python-app-frontend: # 新增的 Python 应用服务
300+
build: # 使用 Dockerfile 构建镜像
301+
context: ./frontend # 前端上下文目录
302+
dockerfile: Dockerfile # Dockerfile 文件
303+
image: jiangmiemie/llmchatf:0.0.2
304+
ports:
305+
- "8501:8501" # 映射 Streamlit 默认端口
306+
command: ["streamlit", "run", "_streamlit/streamlit_app.py"] # 启动命令
307+
depends_on:
308+
- python-app-backend
309+
310+
python-app-backend: # 新增的后端服务
311+
build: # 使用 Dockerfile 构建镜像
312+
context: ./backend # 后端上下文目录
313+
dockerfile: Dockerfile # 后端 Dockerfile 文件
314+
image: jiangmiemie/llmchatb:0.0.2
315+
ports:
316+
- "8010:8010" # 映射后端服务端口
317+
command: ["python", "chat_routers.py"] # 启动后端服务的命令
318+
```
319+
320+
321+
322+
323+
324+
### 启动说明
325+
326+
1. 首先确保你在包含 `docker-compose.yml` 文件的目录下,然后执行以下命令来构建和启动服务:
327+
328+
```bash showLineNumbers
329+
# 构建并启动所有服务(后台运行)
330+
docker-compose up -d
331+
332+
# 如果需要查看日志
333+
docker-compose logs -f
334+
```
335+
336+
2. 或者如果你想在前台运行并直接看到日志:
337+
338+
```bash
339+
# 构建并启动所有服务(前台运行)
340+
docker-compose up
341+
```
342+
343+
3. 其他常用命令:
344+
345+
```bash
346+
# 停止所有服务
347+
docker-compose down
348+
349+
# 重新构建并启动(当 Dockerfile 发生变化时)
350+
docker-compose up -d --build
351+
352+
# 查看服务状态
353+
docker-compose ps
354+
355+
# 查看特定服务的日志
356+
docker-compose logs -f python-app-frontend
357+
docker-compose logs -f python-app-backend
358+
359+
360+
如果遇到问题:
361+
362+
1. 确保 Docker 和 Docker Compose 已经正确安装
363+
2. 检查端口是否被占用
364+
3. 查看容器日志排查问题:
365+
```bash
366+
docker-compose logs -f
367+
```
368+
369+
4. 如果需要重置环境:
370+
```bash
371+
# 停止并删除所有容器、网络
372+
docker-compose down
373+
374+
# 如果还需要删除构建的镜像
375+
docker-compose down --rmi all
376+
```
377+
378+
记住,任何修改 Dockerfile 或代码后,都需要重新构建镜像:
379+
```bash
380+
docker-compose up -d --build
381+
```
382+
383+
### 构建与推送
384+
385+
```bash showLineNumbers
386+
# 构建镜像
387+
docker-compose build
388+
389+
# 推送所有镜像到仓库
390+
docker-compose push
391+
```
392+
393+
### 拉取和运行多个容器
394+
395+
1. 在目标环境创建 docker-compose.yml:
396+
397+
````yaml:docker-compose.yml
398+
version: '3.8'
399+
services:
400+
frontend:
401+
image: your-registry/frontend:latest
402+
ports:
403+
- "8501:8501"
404+
405+
backend:
406+
image: your-registry/backend:latest
407+
ports:
408+
- "8010:8010"
409+
````
410+
411+
2. 拉取和运行:
412+
413+
```bash
414+
# 拉取所有镜像
415+
docker-compose pull
416+
417+
# 启动所有服务
418+
docker-compose up -d
419+
```
420+
421+
### 补充说明
422+
423+
1. 如果使用私有仓库,需要先登录:
424+
```bash
425+
docker login your-registry
426+
```
427+
428+
2. 可以使用环境变量控制版本:
429+
````yaml:docker-compose.yml
430+
services:
431+
frontend:
432+
image: your-registry/frontend:${TAG:-latest}
433+
````
434+
435+
3. 可以只操作特定服务:
436+
```bash
437+
# 只推送前端
438+
docker-compose push frontend
439+
440+
# 只拉取后端
441+
docker-compose pull backend
442+
```
443+
243444
## k8s
244445

245446
Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理。

0 commit comments

Comments
 (0)