docker 存储管理

命令回顾:docker run = docker pull+docker create + docker start

停止容器 docker stop 8a

列出所有容器 docker ps -a

把容器放在后台运行 docker run -d = 把程序放在后台运行 cp -a /usr/ /tmp/ &

查看后台运行的任务 jobs

docker run -d -p(映射端口方便外部应用访问)--name web01(设置容器名字,也可不戴这个参数系统自动取名)nginx(镜像名字后面不加tag默认是latest)

案列一不接映射端口参数

应用场景:数据库不需要对外,内部容器与容器互访

查看容器完整ID, 查看容器IP地址,

换火狐浏览器访问

接-P参数默认做端口映射

容器默认监听80端口,查看方法

只显示容器ID

把所有状态为结束的容器列出来

应用命令执行的结果$() 派上用场了

批量删除所有状态为结束的容器

批量删除所有容器

核心技术

命名空间-资源隔离

ip netns ls

资源控制cgroup:Controller Group 控制组

复制代码
[root@lili cgroup]# pwd
/sys/fs/cgroup

可限制磁盘IO,限制内存使用;

限制容器使用200M内存

复制代码
[root@cce ~]# docker run -m 200M -d -p 8090:80 --name web05 nginx

查容器配置信息

复制代码
[root@cce ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
cf4e47aad40d   nginx     "/docker-entrypoint...."   50 minutes ago   Up 50 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp   web05
a538703d8255   httpd     "httpd-foreground"       59 minutes ago   Up 59 minutes   0.0.0.0:8899->80/tcp, :::8899->80/tcp   web03
[root@cce ~]# docker inspect cf
--------------------
查看容器限制内存200M
[root@cce ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS                    PORTS     NAMES
cf4e47aad40d   nginx     "/docker-entrypoint...."   19 hours ago   Exited (0) 18 hours ago             web05
a538703d8255   httpd     "httpd-foreground"       19 hours ago   Exited (0) 18 hours ago             web03
[root@cce ~]# docker inspect cf |grep -i memory
            "Memory": 209715200,
            "MemoryReservation": 0,
            "MemorySwap": 419430400,
            "MemorySwappiness": null,
------------------------
没有限制内存的容器
[root@cce ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS                    PORTS     NAMES
cf4e47aad40d   nginx     "/docker-entrypoint...."   19 hours ago   Exited (0) 18 hours ago             web05
a538703d8255   httpd     "httpd-foreground"       19 hours ago   Exited (0) 18 hours ago             web03
[root@cce ~]# docker inspect a5 |grep -i memory
            "Memory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
[root@cce ~]# 
--------------
关闭开启容器
[root@cce ~]# docker stop cf
cf
[root@cce ~]# docker start cf
cf
---------

查看容器镜像

复制代码
[root@cce ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    66f8bdd3810c   10 days ago    192MB
busybox      latest    517b897a6a83   2 months ago   4.27MB
httpd        latest    494b2b45fd74   4 months ago   147MB
centos       7         eeb6ee3f44bd   3 years ago    204MB

扩展:衡量磁盘性能-两个指标(bps和iops)

bps代表每秒读写的带宽

iops代表每秒处理IO数量

对于大IO而言(每秒写10MDA(大于256K都属于大IO))用bps带宽衡量合适;对于小IO而言用iops衡量合适,限制它的iops

删除已退出任务的容器

Docker数据管理

数据卷-默认存放在本地磁盘里

底层目录就是镜像存放的位置;上层目录就是存放修改内容的位置,整合后的目录此刻我在容器中看到的内容

Linux文件系统简介:

linux文件系统由bootfs和rootfs组成,bootfs主要包含bootloader和kernel,bootloader主要是引导加载kernel,当kernel被加载到内存之后bootfs就被卸载掉了。rootfs包含的就是典型linux系统中的/dev,/proc,/bin,/etc等标准目录

Docker存储

写时复制CoW / 链接克隆

针对已有文件的修改场景,表示只在写时才去复制。

多个容器使用同一个镜像时,并不会为每个容器分配一个image一样的文件系统,所有数据都从image读取,只有当要对文件进行写操作时,才从Image里把要写的文件复制到自己的文件系统进行修改。

引申:1.统计拷贝所花费时间

引申:2.统计目录大小

引申:3.统计目录大小

相关推荐
Suxing92 小时前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
减瓦2 小时前
别让 Java 版本选择变成生产事故
java
ikun_文2 小时前
Java集合框架Collection拓展进阶
java·java ee
码匠许师傅2 小时前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
chuan.bai3 小时前
Java RAG 实战(第 8 篇):Spring Boot RAG 查询 API
java·spring boot·贪心算法
FlyWIHTSKY3 小时前
idea中集成claude功能
java·ide·人工智能·intellij-idea·cloudera
Java成神之路-3 小时前
Spring AI 统一结构化返回:ChatModel / ChatClient 两种实现方式
java·springaialibaba
Mr. zhihao3 小时前
深度解析:为什么Java序列化需要搭配ByteArrayOutputStream?IO装饰器模式的精妙设计
java·开发语言·装饰器模式
存在morning3 小时前
【Python 开发实践 一】Python vs Go vs Java 三门语言对比
java·python·golang
骇客野人3 小时前
基于Nginx+Eureka+Apollo+Jenkins+SpringBoot Web系统分布式部署方案
nginx·eureka·jenkins