File tree Expand file tree Collapse file tree 10 files changed +194
-0
lines changed Expand file tree Collapse file tree 10 files changed +194
-0
lines changed Original file line number Diff line number Diff line change @@ -44,8 +44,30 @@ image::containerd/c8116066bdbf295a7c9fc25b87755dfe.jpg[docker]
44
44
|**`docker rmi <image_id>`** |删除一个本地镜像。
45
45
|**`docker pull <image_name>`** |从 Docker Hub 拉取镜像。
46
46
|**`docker build -t <image_name> .`** |从 Dockerfile 构建镜像。
47
+ |**`docker stats`**|查看容器的CPU等资源使用情况。
48
+ |**`docker logs`**|查看容器的日志。
49
+ |**`docker exec`**|进入到容器内部执行命令
47
50
|===
48
51
52
+ ===== `docker commit`
53
+
54
+ `docker commit` 命令用于将一个容器中的更改提交为一个新的镜像。
55
+
56
+ 这个命令特别是在国内特别有用,国内开发打包镜像比较麻烦,因此可以先将需要的镜像下载到本地,然后运行之后,替换需要替换的文件,然后使用 `docker commit` 命令来提交一个容器的更改为一个新的镜像。
57
+
58
+ .eg
59
+ [source,bash]
60
+ ----
61
+ docker commit -m "commit message" -a "author" <container_id> <image_name>
62
+ ----
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
49
71
==== 镜像
50
72
51
73
===== *获取镜像*
@@ -884,6 +906,23 @@ db_data:
884
906
- **部署到生产环境**:将应用程序部署到云平台(如 AWS、Google Cloud、Azure)或本地服务器,使用 Docker Swarm 或 Kubernetes 进行编排。
885
907
- **持续集成/持续部署 (CI/CD)**:集成 CI/CD 工具(如 Jenkins、GitLab CI、GitHub Actions)来自动化构建、测试和部署流程。
886
908
909
+
910
+ === 网络
911
+
912
+ 容器内部可以直接使用容器ip+容器端口(不是映射之后的端口)进行通信
913
+
914
+ 如果想让docker容器之间网络使用域名进行通讯,还需要创建一个新的网络空间,默认启动的docker是在docker0网络空间,但是docker0网络空间不能进行域名通讯。
915
+
916
+ [source, bash]
917
+ ----
918
+ docker network create mynet
919
+ # 在多个容器加入同一个网络空间之后,可以直接通过容器名+端口进行访问
920
+ docker run -d --name web1 --network mynet nginx
921
+ # 可以参考redis主从复制集群的实现
922
+ ----
923
+
924
+
925
+
887
926
=== 总结
888
927
889
928
通过以上步骤,您可以逐步掌握 Docker 的核心概念和高级功能。学习 Docker 不仅可以帮助您更好地理解和使用容器化技术,还可以提高您的开发效率和应用程序的可维护性。如果您有更多具体的问题或需要进一步的帮助,请随时告知!
Original file line number Diff line number Diff line change
1
+ version : ' 3.4'
2
+ services :
3
+ web :
4
+ image : nginx:latest
5
+ networks :
6
+ - mynet
7
+ ports :
8
+ - " 8080:80"
9
+ volumes :
10
+ - ./html:/usr/share/nginx/html
11
+
12
+
13
+ # 定义网络(根据需求选择以下两种方式之一)
14
+ # 方式1:让 Docker Compose 自动创建 mynet 网络
15
+ networks :
16
+ mynet :
17
+
18
+ # 方式2:使用已存在的 mynet 网络(需提前创建)
19
+ # networks:
20
+ # mynet:
21
+ # external: true
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html lang ="zh-CN ">
3
+ < head >
4
+ < meta charset ="UTF-8 ">
5
+ < title > 欢迎来到我的网站</ title >
6
+ < style >
7
+ body {
8
+ font-family : Arial, sans-serif;
9
+ background-color : # f0f0f0 ;
10
+ margin : 0 ;
11
+ padding : 0 ;
12
+ }
13
+ .container {
14
+ width : 80% ;
15
+ margin : auto;
16
+ overflow : hidden;
17
+ }
18
+ header {
19
+ background-color : # 50b3a2 ;
20
+ color : white;
21
+ padding-top : 30px ;
22
+ min-height : 70px ;
23
+ border-bottom : # e8491d 3px solid;
24
+ }
25
+ header h1 {
26
+ text-align : center;
27
+ text-transform : uppercase;
28
+ margin : 0 ;
29
+ font-size : 24px ;
30
+ }
31
+ footer {
32
+ background-color : # 50b3a2 ;
33
+ color : white;
34
+ text-align : center;
35
+ padding : 10px 0 ;
36
+ position : absolute;
37
+ bottom : 0 ;
38
+ width : 100% ;
39
+ }
40
+ </ style >
41
+ </ head >
42
+ < body >
43
+ < header >
44
+ < div class ="container ">
45
+ < h1 > 我的Nginx示例网站</ h1 >
46
+ </ div >
47
+ </ header >
48
+
49
+ < div class ="container ">
50
+ < h2 > 欢迎!</ h2 >
51
+ < p > 这是一个简单的HTML页面示例,用于展示如何使用Nginx提供静态内容。</ p >
52
+ </ div >
53
+
54
+ < footer >
55
+ < p > 版权所有 © 2025 我的公司. 保留所有权利.</ p >
56
+ </ footer >
57
+ </ body >
58
+ </ html >
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+
3
+ docker-compose up -d
4
+
5
+
6
+
7
+
8
+
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+
3
+ docker-compose down
Original file line number Diff line number Diff line change
1
+ version : ' 3.4'
2
+
3
+ services :
4
+ redis-master :
5
+ image : redis:latest
6
+ container_name : redis-master
7
+ ports :
8
+ - " 6379:6379"
9
+ volumes :
10
+ - redis-master-data:/data
11
+ networks :
12
+ - redis-network
13
+ command : redis-server --appendonly yes # 开启持久化
14
+ restart : unless-stopped
15
+
16
+ redis-slave1 :
17
+ image : redis:latest
18
+ container_name : redis-slave1
19
+ ports :
20
+ - " 6380:6379"
21
+ volumes :
22
+ - redis-slave1-data:/data
23
+ networks :
24
+ - redis-network
25
+ command : redis-server --appendonly yes --replicaof redis-master 6379
26
+ restart : unless-stopped
27
+
28
+ redis-slave2 :
29
+ image : redis:latest
30
+ container_name : redis-slave2
31
+ ports :
32
+ - " 6381:6379"
33
+ volumes :
34
+ - redis-slave2-data:/data
35
+ networks :
36
+ - redis-network
37
+ command : redis-server --appendonly yes --replicaof redis-master 6379
38
+ restart : unless-stopped
39
+
40
+ volumes :
41
+ redis-master-data :
42
+ redis-slave1-data :
43
+ redis-slave2-data :
44
+
45
+ networks :
46
+ redis-network :
47
+ driver : bridge
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+
3
+ docker-compose up -d
4
+
5
+
6
+
7
+
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+
3
+ docker-compose down
Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+
3
+
4
+ # shellcheck disable=SC2046
5
+ docker stop $( docker ps -q)
6
+ docker rm $( docker ps -aq)
7
+
8
+
You can’t perform that action at this time.
0 commit comments