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.统计目录大小

相关推荐
komo莫莫da16 分钟前
寒假刷题Day19
java·开发语言
S-X-S1 小时前
算法总结-数组/字符串
java·数据结构·算法
linwq81 小时前
设计模式学习(二)
java·学习·设计模式
桦说编程2 小时前
CompletableFuture 超时功能有大坑!使用不当直接生产事故!
java·性能优化·函数式编程·并发编程
@_@哆啦A梦2 小时前
Redis 基础命令
java·数据库·redis
杨浦老苏2 小时前
开源音乐管理软件Melody
docker·群晖·多媒体
字节全栈_rJF3 小时前
性能测试 —— Tomcat监控与调优:status页监控_tomcat 自带监控
java·tomcat
爱编程的小新☆4 小时前
Java篇之继承
java·开发语言
gentle coder4 小时前
Redis_Redission的入门案例、多主案例搭建、分布式锁进行加锁、解锁底层源码解析
java·redis·分布式
萝卜青今天也要开心4 小时前
读书笔记-《Redis设计与实现》(一)数据结构与对象(下)
java·数据结构·redis·学习