命令回顾: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里把要写的文件复制到自己的文件系统进行修改。