前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker创建进入删除容器资源限制

docker创建进入删除容器资源限制

原创
作者头像
陈雷雷
修改2020-03-19 09:57:48
1.7K0
修改2020-03-19 09:57:48
举报
文章被收录于专栏:Linux学习和使用Linux学习和使用

为什么使用容器

代码语言:txt
复制
docker设计目标:
提供简单的应用打包工具
开发人员和运维人员职责逻辑分离
多环境保持一致性
轻量级


kubernetes设计目标:
集中管理所有容器
资源编排
资源调度
弹性伸缩
资源隔离

容器与虚拟机

image-20200308101459743.png
image-20200308101459743.png
代码语言:txt
复制
虚拟机比容器多了一层完整的os系统
docker寄居于底层系统之上,能够节省资源开销.
image-20200308103159625.png
image-20200308103159625.png

docker的资源隔离和网络限制

代码语言:txt
复制
1. namespace 实现了资源的隔离,分别是:
   UTS,主机和域名隔离
   IPC,消息队列,共享内存隔离
   PID,进程隔离
   Mount, 文件系统隔离
   User,用户和用户租隔离
   
2. cgoups:  资源限制
   进程资源限制
   CPU使用限制
   磁盘I/O限制
   
3. UFS: 联合文件系统.  

安装docker

代码语言:txt
复制
centos7.x :
# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker软件包源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装Docker CE
yum install -y docker-ce

# 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker
代码语言:txt
复制
阿里云源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  
#添加源 : 
wget -O /etc/yum.repos.d/ali_docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  
  
镜像加速源配置1 官方镜像:
[root@master yum.repos.d]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["hhttp://f1361db2.m.daocloud.io"]
}

----------------------------------------------------------------
镜像加速源配置2 阿里云镜像[稳定]:
[root@master yum.repos.d]# cat >/etc/docker/daemon.json<<eof
{
  "registry-mirrors": ["https://ajvcw8qn.mirror.aliyuncs.com"]
}
eof
----------------------------------------------------------------
镜像加速源配置3 网易镜像:
#配置:
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

加速配置与生效方法:
cat >/etc/docker/daemon.json<<EOF
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
#启动:
systemctl restart docker


# 安装Docker CE
yum install -y docker-ce-18.03.1.ce-1.el7.centos

#安装特定版本docker
yum list docker-ce --showduplicates | sort -r 
列出后使用 yum install -y docker-ce-18.03.1.ce-1.el7.centos 安装指定版本即可

# 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker

#镜像加速配置完后需要:
systemctl daemon-reload
systemctl restart docker

### 注意 4台服务器均要安装docker-ce 它作为k8s容器引擎是必备的.

镜像加速

代码语言:txt
复制
##配置docker镜像加速
vi /etc/docker/daemon.json

cat > /etc/docker/daemon.json <<eof
{
  "registry-mirrors": ["https://v2ltjwbg.mirror.aliyuncs.com"]
}
eof


#---------------------------------
{
  "registry-mirrors": ["https://ajvcw8qn.mirror.aliyuncs.com"]
}

个人加速器获取地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
#---------------------------------

镜像是什么

代码语言:txt
复制
镜像是一个分层存储的文件
一个软件环境
一个镜像可以创建N个容器
一种标准化的交付
一个不包含Linux内核又是一个Linux操作系统.

一个Linux是由内核+文件组成的.
Linux提供内核,docker

docker默认镜像目录: /var/lib/docker/overlay2/ 官方docker镜像仓库: hub.docker.com

创建一个容器:

代码语言:txt
复制
#1. 创建容器需要考虑哪些?
1. 应用暴露
2. 主机名,ip
3. 数据是否持久化
4. 是否存在变量传入

#如何创建一个容器
docker run --name a-nginx -d -p 8080:80 nginx
将外部8080端口映射为容器内部nginx端口80
image-20200308111946937.png
image-20200308111946937.png

运行一个镜像后,它会在工作目录中创建一个读写层的目录,元数据信息,以及日志信息.

进入容器

代码语言:txt
复制
docker exec -it a-nginx bash
docker exec -it b-nginx /bin/sh

删除容器

代码语言:txt
复制
docker rm -f a-nginx

删除镜像

代码语言:txt
复制
 docker rmi -f a-nginx

docker命令表

image-20200308113352574.png
image-20200308113352574.png
image-20200308115346909.png
image-20200308115346909.png
代码语言:txt
复制
docker run 时添加 --restart=always 作用:   启动docker的同时启动这个容器.
例子: docker run --name b-nginx -d -p 8082:80 --restart=always nginx 
启动docker的同时,启动这个镜像

docker exec -it b-nginx /bin/sh

资源限制

代码语言:txt
复制
-m --memory      #限制容器使用的内存
--memory-swap    #允许交换分区到磁盘的内存
--memory-swappiness=<0-100>  #容器使用swap的百分比,默认关闭-1
--oom-kill-disable   #禁用oom
--cpus           #可以使用cpu的数量[常用]
--cpuset-cpus    #限制容器使用特定的cpu 如: 0-3 0,1
--cpu-shares     #cpu共享(相对的权重)

资源限制示例:

代码语言:txt
复制
#限制内存500MB 开启swap600MB 禁止被oom
docker run -d --name nginx01 --memory="500m" --memory-swap="600m" --oom-kill-disable nginx

#限制CPU示例,最多可以使用1.5个cpu
docker run -d --name nginx02 --cpus="1.5" nginx

#限制最多使用50%cpu
docker run -d --name nginx05 --cpus=".5" nginx

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 容器与虚拟机
  • docker的资源隔离和网络限制
  • 安装docker
    • 镜像加速
      • 镜像是什么
        • 创建一个容器:
          • 进入容器
            • 删除容器
              • 删除镜像
                • docker命令表
                  • 资源限制
                  相关产品与服务
                  容器镜像服务
                  容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档