docker容器化基础

本文介绍了Docker的容器隔离技术,包括namespace和cgroup的使用,详细阐述了如何通过cgroup限制资源如CPU和内存的使用。此外,还探讨了Docker的分层设计,以及如何通过Dockerfile创建镜像并启动容器服务。最后,提供了从创建镜像到启动、查看和管理容器的实战步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

容器隔离技术原理

1. namespace隔离

安装busybox镜像测试:
可以看到pid=1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K7vYFyUS-1626792109234)(C:\Users\lonk\AppData\Roaming\Typora\typora-user-images\image-20210720150645441.png)]

2. cgroup限制

查询管控限制的资源:mount -t cgroup

以cpu为例:ls /sys/fs/cgroup/cpu, 其中cfs是重点关注的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fQG4Deqn-1626792109238)(C:\Users\lonk\AppData\Roaming\Typora\typora-user-images\image-20210720150956783.png)]

创建独立限制文件:mkdir container

默认生成一下文件:

设置cpu限制:

每 100 ms 的时间里,被该控制组限制的进程只能使用 20 ms 的 CPU 时间,也就是说这个进程只能使用到 20% 的CPU 带宽: echo 20000 > /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us

设置限制的进程:

echo 226 > /sys/fs/cgroup/cpu/container/task

其他资源控制:

blkio,为 块 设 备 设 定 I/O 限 制,一般用于磁盘等设备;

cpuset,为进程分配单独的 CPU 核和对应的内存节点;

memory,为进程设定内存使用的限制。

在容器中配置cgroup:
$ docker run -it --cpu-period=100000 --cpu-quota=20000 ubuntu /bin/bash

3. docker分层设计

Docker 在镜像的设计中,引入了层(layer)的概念。也就是说,用户制作镜像的每一步操作,都会生成一个层,也就是一个增量 rootfs。

Union File System 也叫 UnionFS,最主要的功能是将多个不同位置的目录联合挂载(union mount)到同一个目录下。

应用的容器镜像简单实战

  • 启动Docker

sudo systemctl start docker

  • 创建一个镜像的目录

mkdir docker_demo

  • 上传web应用

demo-0.0.1-SNAPSHOT.jar

  • 编写dockerfile文件
# touch Dockerfile
# vi Dockerfile 

# 基础镜像
FROM  java:8

# 将 context 的 jar 包, 拷贝到 容器的工作目录下, jar 包名称不变
ADD demo-0.0.1-SNAPSHOT.jar demo-0.0.1-SNAPSHOT.jar

# spring boot 的 web 应用, 默认占用 8080 端口, 所以把它 暴露出去 即可
EXPOSE 8080

# 入口命令, 启动服务器
ENTRYPOINT ["java", "-jar", "demo-0.0.1-SNAPSHOT.jar"]
  • 创建镜像
docker image build -t jardemo:v1 .

# 启动服务
docker run -d -p 8080:8080 jardemo:v1

在这里插入图片描述

  • 查看启动镜像服务

docker ps
docker stop 0f0bf5deb7f3
在这里插入图片描述

  • 删除容器与镜像

docker rm jardemo
docker rmi jardemo:v1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值