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

相关推荐
沙子迷了蜗牛眼18 分钟前
当展示列表使用 URL.createObjectURL 的创建临时图片、视频无法加载问题
java·前端·javascript·vue.js
ganshenml20 分钟前
【Android】 开发四角版本全解析:AS、AGP、Gradle 与 JDK 的配套关系
android·java·开发语言
我命由我1234521 分钟前
Kotlin 运算符 - == 运算符与 === 运算符
android·java·开发语言·java-ee·kotlin·android studio·android-studio
小途软件27 分钟前
ssm327校园二手交易平台的设计与实现+vue
java·人工智能·pytorch·python·深度学习·语言模型
alonewolf_9931 分钟前
Java类加载机制深度解析:从双亲委派到热加载实战
java·开发语言
追梦者12332 分钟前
springboot整合minio
java·spring boot·后端
云游35 分钟前
Jaspersoft Studio community edition 7.0.3的应用
java·报表
菜鸟思维39 分钟前
优化NextJs 项目的Docker 镜像 从3.62G 优化到 296.85M
docker
帅气的你40 分钟前
Spring Boot 集成 AOP 实现日志记录与接口权限校验
java·spring boot
怣疯knight1 小时前
Docker Desktop 4.55.0版本安装成功教程
windows·docker