docker基础使用和原理

docker基础使用和原理,第1张

一、隔离机制

1、docker的隔离原理是基于linux底层机制进行的隔离。

namespace资源隔离

namesapce系统调用参数隔离内容
UTSCLONE_NEWUTS主机名
IPCCLONE_NEWIPC信号量、消息队列
PIDCLONE_NEWIPC进程号
NetworkCLONE_NEWNET网络设备、端口
Mount        CLONE_NEWNS挂载点
UserCLONE_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而言;如果启动容器不限制资源;默认是和宿主机共用的资源,会无限制的使用宿主机的资源

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/927212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-17
下一篇 2022-05-17

发表评论

登录后才能评论

评论列表(0条)

保存