Day04 Docker
Docker的理念
应用场景:
1、web应用的自动化打包发布
2、自动化测试的集成、发布
3、在服务环境中部署调整其他的后台应用
4、从头编译或扩展现有平台搭建自己的PaaS环境
组成部分
Docker Host主机:一个物理机和虚拟机,用于运行Docker服务进程和容器,也成为宿主机
dockers server 服务端: docker 守护进程,运行docker 容器
dockers client 客户端: 客户端使用docker或其他工具调用docker api
registry 仓库 : 存放镜像的仓库
images 镜像 : 镜像可以理解为创建实例使用的模板,镜像是只读的,只能在容器里面写
container 容器: 从镜像成成对外提供服务的一个或一组服务
相较于虚拟机,docker容器资源利用率更高,一台机器可以运行几百个容器,但是只能几十个虚拟机
系统资源开销更小,不单独占用硬件资源并且启动速度更快,集成性更好,能够和cicd相关技术结合性更好,实现自动化管理
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
docker的本质
不断构建,不断拉取
docker 是属于半解耦的技术,通过namespace 将特定的全局系统资源用抽象的方法实现隔离
docker 创建一个容器,它会创建六种namespace实例
mount:提供磁盘挂载点和文件系统的隔离能力 调用参数:CLONE_NEWNS
Inter-Process-Communication : 提供进程间通信的隔离能力 参数:CLONE_NEWIPC
UNIX Timesharing System: 提供主机名隔离能力 参数:CLONE_NEWUTS
Process Identification:提供进程隔离能力 参数:CLONE_NEWNET
network:网路隔离能力 CLONE_NEWNET
user:用户隔离能力 CLONE_NEWUSER
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
Docker的组成
cgroup作用
控制程序对资源占用
具体描述:可以对进程组使用的资源总额进行限制
优先级限制:通过分配cpu时间片数量及磁盘IO带宽大小,实际上相当于控制子进程运行优先级
资源统计:统计系统资源使用量,比如cpu使用时间,内存使用量
进程控制,恢复执行进程
查看cpu权重
cat /sys/fs/cgroup/cpu/cpu.shares --->1024
容器cpu
docker run -tid centos
cat /sys/fs/cgroup/cpu/cpu.shares --->1024 #前提是下载了cat 这个命令
内存 cat /sys/fs/cgroup/memory/memory.limit_in_bytes
交换空间 cat /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes
默认不会对容器的内存做限制的,一般对容器使用的cpu和内存进行限制 20% cpu
docker run -itd --name=test --cpu-quota 20000 centos:7 /bin/bash 容器id
压力测试
echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/00-system.conf
内存限制的参数
-m/-memory 可以指定容器使用的最大内存,如果设置了这个参数,运行容器最低的内存大小为4M(后期docker 设置最小为6M)
docker run -itd --rm -m 4m ubuntu:18.04 bash
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
RUNC 标准化容器执行引擎
安装docker
搭建梯云纵
配置文件在配置中点击打开 C:\Users\jichao\.config\clash\profiles中一共两个文件
cd /usr/lib/systemd/system
vim clash.service
[Unit]
Description=clash-core
[Service]
Type=simple
ExecStart=/opt/clash/clash -f /opt/clash/config.yml -d /opt/clash/
[Install]
WantedBy=multi-user.target
mkdir -p /opt/clash/
把config.yml Country.mmdb clash传入进去/opt/clash
给这三个 chmod +x config.yml Country.mmdb clash 执行权限
把自带脚本start-proxy.sh执行一下即可
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.