一、隔离机制
1、docker的隔离原理是基于linux底层机制进行的隔离。
namespace资源隔离
| namesapce | 系统调用参数 | 隔离内容 |
| UTS | CLONE_NEWUTS | 主机名 |
| IPC | CLONE_NEWIPC | 信号量、消息队列 |
| PID | CLONE_NEWIPC | 进程号 |
| Network | CLONE_NEWNET | 网络设备、端口 |
| Mount | CLONE_NEWNS | 挂载点 |
| User | CLONE_NEWUSER | 用户和用户组 |
2、cgroups资源限制
资源限制:限制任务使用的资源总额;并在超过这个配额发出提示
优先级分配:分配cpu时间片数量及磁盘IO带宽大小、控制任务运行的优先级
资源统计:统计系统资源使用量。如CPU使用时长、内存用量等
任务控制:对任务执行挂起、恢复等操作
| 子系统 | 描述 |
| cpu | 对cpu的使用 |
| CPU Accounting | 自动生成对cpu资源使用情况的报告 |
| cpuset | 分配独立的cpu和内存 |
| devices | 开启或关闭cgroup任务对设备的访问 |
| freezer | 挂起或恢复cgroup中的任务 |
| memory | 设定cgroup中任务对内存使用量的限定;并生成对内存资源使用情况的报告 |
| perf_event | 使cgroup的任务可以进行统一的性能测试 |
| net_cls | 通过登记识别标记网络数据包;从而允许linux流量监控程序识别从具体cgroup中生成的数据包 |
二、docker的安装
在线安装方式
1、卸载docker
yum remove -y docker*
2、安装docker;
参考官方文档
Install Docker Engine on CentOS | Docker Documentation
参考阿里云文档
docker-ce镜像-docker-ce下载地址-docker-ce安装教程-阿里巴巴开源镜像站
离线安装方式
官方文档:
Install Docker Engine from binaries | Docker Documentation
三、镜像加速器
1、阿里云镜像加速器
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
配置如下:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lqpaclk7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
常用加速地址:
官方地址:https://registry.docker-cn.com
腾讯云:https://mirror.ccs.tencentyun.com
中科大:https://docker.mirrors.ustc.edu.cn
网易云:https://hub-mirror.c.163.com
多个加速器配置方法:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
四、常用命令
参考官方文档具体命令说明:Reference documentation | Docker Documentation
1、docker命令图
2、查看命令
docker info # 版本查看 docker version # 帮助 docker --help
3、镜像命令
# 查看本地镜像 docker images # 搜索镜像 docker search imagename # 下载镜像 docker pull imagename # 上传镜像 docker push imagename # 导出镜像 docker image save imagename > image.tar.gz # 导入镜像 docker load -i image.tar.gz # 删除镜像 docker rm image inamename # 镜像详细信息查看 docker image inspect imagename # 镜像历史制作 docker image history imagename
4、容器命令
# 查看所有容器 docker ps -a # 删除容器 docker container rm -f ccontainername # 删除所有容器 docker container rm -f `docker ls -a -q` # 进入到容器 docker exec -it containername /bin/bash # 查看容器详细信息 docker container inspect containername # 运行并启动容器 docker run -it imagename # 启动容器 docker start containername # 停止容器 docker stop containername # 查看容器日志 docker log containername # 启动守护进程容器并指定端口 docker run -d -p 宿主机端口:容器端口 imagename # 启动守护进程容器并挂载目录 docker run -d -v 宿主机目录:容器目录 imagename # 启动守护进程容器并限制资源 docker run -it --name alpine-test -m=4g #限制内存为4G docker run -dit --cpus=2 nginx:1.19.2-alpine #限制cpu核心数
# 注意对于docker而言;如果启动容器不限制资源;默认是和宿主机共用的资源,会无限制的使用宿主机的资源



