003.Docker容器管理
一 docer运行应用
1.1 常见容器运行
root@docker:~# docker #查看docker相关命令
root@docker:~# docker run -d -p 80:80 httpd #从docker hub下载httpd镜像,启动httpd容器,并将容器的80端口映射到宿主机的80端口
root@docker:~# docker run centos:7 echo "hello world"
hello world
root@docker:~# docker ps #查看运行的容器情况
- CONTAINER ID:容器ID
- NAMES:自动分配的容器名称
root@docker:~# docker logs 634cf027ad85 #查看容器内的标准输出
root@docker:~# docker stop 634cf027ad85 #停止容器
root@docker:~# docker ps #再次查看
1.2 交互式运行容器
root@docker:~# docker run -i -t centos:7 /bin/bash
- -t:在新容器内指定一个伪终端或终端。
- -i:允许你对容器内的标准输入 (STDIN) 进行交互。
二 运行Web应用及其他操作
2.1 容器后端运行
root@docker:~# docker pull training/webapp
root@docker:~# docker run -d -P training/webapp python app.py
- -d:让容器在后台运行。
- -P:将容器内部使用的网络端口映射到我们使用的主机上。
root@docker:~# docker ps



2.2 指定端口运行容器
root@docker:~# docker run -d -p 8080:5000 training/webapp python app.py #使用-p参数来绑定指定端口。
root@docker:~# docker run -d -p 9090:5000/tcp --name web training/webapp python app.py #使用--name标记可以为容器命名
root@docker:~# docker ps


root@docker:~# docker port 25cbcff93d56
5000/tcp -> 0.0.0.0:8080
root@docker:~# docker port 95b731acd6b5
5000/tcp -> 0.0.0.0:32768

2.3 进入容器
root@docker:~# docker exec -it 5e7ad2db2304 /bin/bash
root@docker:~# docker exec -it web /bin/bash
2.4 容器其他操作
root@docker:~# docker logs -f 95b731acd6b5 #查看运行日志
root@docker:~# docker inspect web #查看Docker容器的配置和状态信息
root@docker:~# docker restart 5e7ad2db2304 #重启docker
root@docker:~# docker stop 95b731acd6b5 #停止docker
root@docker:~# docker kill 25cbcff93d56 #停止docker
root@docker:~# docker ps -a #查看所有容器情况
root@docker:~# docker start 95b731acd6b5 #运行已停止的docker
root@docker:~# docker rm 95b731acd6b5 #删除该docker
root@docker:~# docker pause 5e7ad2db2304 #暂停容器
root@docker:~# docker unpause 5e7ad2db2304 #恢复容器
三 容器生命周期管理
3.1 容器生命周期

四 docker资源限制
4.1 资源限制意义
五 docker内存限制
5.1 内存限制
- 容器能使用的内存和交换分区大小。
- 容器的核心内存大小。
- 容器虚拟内存的交换行为。
- 容器内存的软性限制。
- 是否杀死占用过多内存的容器。
- 容器被杀死的优先级。
5.2 内存限制相关参数
|
选项
|
描述
|
|
-m,--memory
|
内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为4M
|
|
--memory-swap
|
内存+交换分区大小总限制,格式同上,必须比-m设置的值大
|
|
--memory-reservation
|
内存的软性限制,格式同上
|
|
--oom-kill-disable
|
是否阻止 OOM killer 杀死容器,默认没设置
|
|
--oom-score-adj
|
容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0
|
|
--memory-swappiness
|
用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数
|
|
--kernel-memory
|
核心内存限制。格式同上,最小为 4M
|
5.3 内存设置方式
- 设置-m,--memory,不设置--memory-swap
root@docker:~# docker run -d --name ubuntu_01 -m 1G --memory-swap 0 ubuntu:16.04
- 设置-m,--memory=a,--memory-swap=b,且b > a
root@docker:~# docker run -d --name ubuntu_02 -m 1G --memory-swap 3G ubuntu:16.04
- 设置-m,--memory=a,--memory-swap=-1
root@docker:~# docker run -d --name ubuntu_03 -m 1G --memory-swap -1 ubuntu:16.04
root@docker:~# vi /etc/default/grub
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
root@docker:~# update-grub #重启系统
5.4 内存软性限制
root@docker:~# docker run -d --name ubuntu_04 -m 2G --memory-reservation 1G ubuntu:16.04
5.5 OOM killer
root@docker:~# docker run -d --name ubuntu_05 -m 1G --oom-kill-disable ubuntu:16.04
5.6 --memory-swappiness
root@docker:~# docker run -d --name ubuntu_06 --memory-swappiness=0 ubuntu:16.04
六 CPU限制
- 当多个 CPU 密集型的容器竞争 CPU 时,设置各个容器能使用的 CPU 时间相对比例。
- 以绝对的方式设置容器在每个调度周期内最多能使用的 CPU 时间。
6.1 CPU限制相关参数
|
选项
|
描述
|
|
--cpuset-cpus=""
|
允许使用的 CPU 集,值可以为 0-3,0,1
|
|
-c,--cpu-shares=0
|
CPU 共享权值(相对权重)
|
|
cpu-period=0
|
限制 CPU CFS 的周期,范围从 100ms~1s,即[1000, 1000000]
|
|
--cpu-quota=0
|
限制 CPU CFS 配额,必须不小于1ms,即 >= 1000
|
|
--cpuset-mems=""
|
允许在上执行的内存节点(MEMs),只对 NUMA 系统有效
|
6.2 CPU集
root@docker:~# docker run -d --name ubuntu_07 --cpuset-cpus="1,3" ubuntu:16.04
6.3 CPU 资源的相对限制
PID container CPU CPU share
100 {C0} 0 100% of CPU0
101 {C1} 1 100% of CPU1
102 {C1} 2 100% of CPU2
6.4 CPU 资源的绝对限制
七 Block IO限制
|
选项
|
描述
|
|
--blkio-weight
|
设置的都是资源使用的权重
提示:该设置都是资源紧张的情况下才会起到权重的作用,正常情况下,都是平等的。
--blkio-weight-device 针对特定的设备设置权重
|
|
--device-read-bps
|
限制读某个设备的bps(数据量)
|
|
--device-write-bps
|
限制写入某个设备的bps(数据量)
|
|
--device-read-iops
|
限制读某个设备的iops(次数)
|
|
--device-write-iops
|
限制写入某个设备的iops(次数)
|
7.1 block IO 权重
root@docker:~# docker run -d --name ubuntu_10 --blkio-weight 600 ubuntu:16.04
root@docker:~# docker run -d --name ubuntu_11 --blkio-weight 300 ubuntu:16.04
7.2 限制 bps 和 iops
root@docker:~# docker run -d --name ubuntu_12 --device-write-bps /dev/sda:30MB ubuntu:16.04
003.Docker容器管理的更多相关文章
- docker 容器管理常用命令
Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: create Create a new container 创建一个容器: ...
- docker 容器管理上
Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: docker start container_id //启动容器后,可以使用 ...
- Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例
搬砖的陈大师版权所有,转载请注明:http://www.lenggirl.com/tool/docker-compose.html Docker-compose 多个Docker容器管理:以MYSQL ...
- Docker系列三:Docker容器管理
Docker容器管理 1. 单一容器管理 1) 容器的启动 $ docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis: ...
- docker容器管理及网络管理
防火墙规则—— INPUT 主要用于主机防火墙,设置规则屏蔽处理进入本机的数据包示例:禁止10.180.100.141这个机器访问我本机的web服务iptables -t filter -A INPU ...
- docker容器管理-含静态Ip(10)
docker run命令详解 docker run -t #表示分配一个伪终端 -i #表示让容器的标准输入打开,不跟这个参数容器启不来 -d #后台运行 -P #dockerfile中EXPOSE ...
- Docker学习第二天(Docker容器管理)
简介 emmmm Docker 容器管理 推荐文章:容器技术概述 run里面的子选项 1.使用run命令创建容器 docker container run -it ubuntu /bin/bash / ...
- 四、docker容器管理
一.docker容器管理 1.1 容器查看-ps命令 显示本地容器列表,但是默认不显示关闭的容器,只显示运行中的容器,除非加上命令选项 -a 用法:docker ps [-a 显示所有容器,默认只显示 ...
- [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务
转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...
随机推荐
- 一:对程序员来说CPU是什么?
0.开篇 (1)程序是什么? 指示计算机每一步动作的一组指令 (2)程序是由什么组成的? 指令和数据 (3)什么是机器语言? ...
- JS浮点数运算Bug的解决办法
方法一:重写浮点运算的函数 //除法函数,用来得到精确的除法结果 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显.这个函数返回较为精确的除法结果. //调用:acc ...
- ubuntu下安装intel realsense驱动
在安装之前一定要确保系统是ubuntu 14.04.3 64位! 由于一开始安装的是32位系统,导致在升级内核版本到4.4时各种问题,最终靠重装系统解决. 因为intel给出的测试代码均是在64位14 ...
- IDEA常用快捷键和常用插件集成,持续更新......
用习惯了eclipse,不容易转过来,记一下! 快捷键 psvm: main 方法快捷键 sout :syso快捷键 CTRL+O: 重写父类方法 Ctrl+Alt+V :自动补全返回值 Ctrl+S ...
- SpringBoot与任务
(1).异步任务 package cn.coreqi; import org.springframework.boot.SpringApplication; import org.springfram ...
- Java 集合系列0、概述
概述: Collection 框架中 从最上层的核心主干可以看到:Iterator.Collection.Map 三个接口(拓展思考1)1.Collection 接口:主要包括了集合中的一些常用操作, ...
- 【python图像处理】图像的缩放、旋转与翻转
[python图像处理]图像的缩放.旋转与翻转 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图 ...
- 在imagenet预训模型上进行finetune
所谓fine tune就是用别人训练好的模型,加上我们自己的数据,来训练新的模型.fine tune相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中. fine tune ...
- 【vim】把当前文件转化为网页
这会生成一个 HTML 文件来显示文本,并在分开的窗口显示源代码: :%TOhtml (译者注:原文是 :%Tohtml,但在我的电脑上是 :%TOhtml) 转载自:https://linux.cn ...
- Vue.js——component(组件)
概念: 组件(Component)是自定义元素. 作用: 可以扩展HTML元素,封装可重用的代码. <div id="myView"> <!-- 把学生的数据循环 ...