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就预见了这个项目的价值,并将其做为 ...
随机推荐
- MySQL备份可能遇到的坑
MySQL备份工具,支持各种参数选项,使用不同的选项极有可能影响备份处理过程.本文使用我们常规认为合理的备份参数,测试/验证是否存在容易忽视的坑 # 常规备份参数 # mysqldump shell& ...
- python - socketserver 模块应用
server端: import socketserver import subprocess import json import struct class MyTCPHandler(socketse ...
- linux学习笔记1——指令的基本格式及基本文件操作
从今天开始就正式踏上了linux的学习历程.linux作为绝大多数服务器采用的操作系统,是每个开发人员都非常有必要掌握的操作系统.初学时,我没有直接在电脑上安装linux操作系统,而是采用了虚拟机的方 ...
- 二、Linear Regression 练习(转载)
转载链接:http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2961660.html 前言 本文是多元线性回归的练习,这里练习的是最简单的二元 ...
- 【vim】保存文件没有权限 :w !sudo tee %
每当你打开一个你没有写入权限的文件(比如系统配置文件)并做了一些修改,Vim 无法通过普通的 ":w" 命令来保存. 你不需要重新以 root 方式打开文件再进行修改,只需要运行: ...
- ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST
1.前言 ARMV8系统级编程模型主要包括异常级别.运行状态.安全状态.同步异常.异步异常.DEBUG 本文主要对系统级编程模型做一个概要介绍 2. 异常级别 2.1 Exception level概 ...
- mysql5.6.13通用二进制格式安装并使用amoeba实现对mysql5.6数据库读写分离
proxy 192.168.8.39 master 192.168.8.40 slave 192.168.8.20 一.安装mysql-5.6.13服务器 安装包: mysql-5.6.13-linu ...
- Ex 3_17 无穷路径..._十一次作业
(a) Inf(p)在p中出现了无穷多次,说明Inf(p)存在一个环当中,所以这个环的顶点肯定是某一个强连通部件的子集. (b) 若G中存在一条无穷路径,则G中至少存在一个环,且这个环至少有两个顶点, ...
- Spring_使用XML文件的方式配置事务
步骤: 正常配置jdbctemplate 正常配置bean 配置事物管理器 配置事物管理器 配置aop切入点,通过切入点把事物链接起来 思路: 接着上一个买书的例子吧,直接拷到新包下,把注解都干掉,需 ...
- Mac 安装 JDK
1.访问Oracle官网 http://www.oracle.com,下载 JDK 2.安装JDK 解压 1 中下载的压缩包,在Finder下载目录中双击安装. 或者命令行安装,详见:http://w ...