Docker ---初识docker
初识docker
1、为什么要使用docker ? docker 优势在哪里?
docker 优势:
环境分离
节约成本最大程度利用现有服务器的资源,从而节约成本。
部署方便,快速部署,快速缩容,扩容
轻量级,降低风险
完美搭配微服务
版本控制
可持续集成 CI/CD
高度保持多个环境一致性
缺点:
满足不了业务发展需求
安全性不如VM
隔离性不如VM
大规模不易管理,K8s应用而生
不易有状态应用部署
排查问题比较难
不支持Windows

Docker 基本使用
指令 描述 ls 列出镜像 build 构建镜像来自Dockerfile history 查看镜像历史 inspect 显示一个或多个镜像详细信息 pull 从镜像仓库拉取镜像 push 推送一个镜像到镜像仓库 rm 移除一个或多个镜像 prune 移除未使用的镜像。没有被标记或被任何容器引用的。 tag 创建一个引用源镜像标记目标镜像 export 导出容器文件系统到tar归档文件 import 导入容器文件系统tar归档文件创建镜像 save 保存一个或多个镜像到一个tar归档文件 load 加载镜像来自tar归档或标准输入
镜像是什么?
• 一个分层存储的文件
• 一个软件的环境
• 一个镜像可以创建N个容器
• 一种标准化的交付
• 一个不包含Linux内核而又精简的Linux操作系统
镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history <ID/NAME> 查看镜像中各层内容及大小,每层
对应着Dockerfile中的一条指令。Docker镜像默认存储在/var/lib/docker/\<storage-driver\>中。
默认拉取镜像的时候 会慢,我们可以使用加速器
配置镜像加速器:https://www.daocloud.io/mirror
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
啊里的加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://2ua5n3fu.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker history nginx
可以看到镜像各个层次简单信息

使用 docker inspect image 名字可以看到 镜像的工作目录
docker rm -f 容器名称 //强制删除容器
docker rmg 镜像名字 // 删除已有的镜像
docker commit 提交创建一个镜像
镜像特点:
1、一个镜像可以创建多个容器
2、创建的容器修改不会影响到原镜像
3、镜像增量式存储
docker 用了什么技术来控制隔离的?
1、 cgroup 资源限制 , cpu ,内存
2、namespace 资源隔离,进程,文件系统
3、ufs 联合文件系统 ,增量式的存储,提供磁盘利用率
DOCKER 一些常用选项
选项 描述 -i, –interactive 交互式 -t, –tty 分配一个伪终端 -d, –detach 运行容器到后台 -e, –env 设置环境变量 -p, –publish list 发布容器端口到主机 -P, –publish-all 发布容器所有EXPOSE的端口到宿主机随机端口 –name string 指定容器名称 -h, –hostname 设置容器主机名 –ip string 指定容器IP,只能用于自定义网络 –network 连接容器到一个网络 –mount mount 将文件系统附加到容器 -v, –volume list 绑定挂载一个卷 –restart string 容器退出时重启策略,默认no,可选值:[always|on-failure]
选项 描述 -m,–memory 容器可以使用的最大内存量 –memory-swap 允许交换到磁盘的内存量 –memory-swappiness=<0-100> 容器使用SWAP分区交换的百分比(0-100,默认为-1) –oom-kill-disable 禁用OOM Killer --cpus 可以使用的CPU数量 –cpuset-cpus 限制容器使用特定的CPU核心,如(0-3, 0,1) –cpu-shares CPU共享(相对权重)
示例:
内存限额:
允许容器最多使用500M内存和100M的Swap,并禁用 OOM Killer:
docker run -d --name nginx03 --memory="500m" --memory-swap=“600m" --oom-kill-disable nginx
CPU限额:
允许容器最多使用一个半的CPU:
docker run -d --name nginx04 --cpus="1.5" nginx
允许容器最多使用50%的CPU:
docker run -d --name nginx05 --cpus=".5" nginx
docker rm -f $(docker ps -qa) //查询出所有容器,并强制删除
docker 在创建容器 如果不做任何设置的话,默认不限制使用宿主机所有资源
使用 docker stats 容器名称 可以查看当前容器的状态

选项 描述 ls 列出容器 inspect 查看一个或多个容器详细信息 exec 在运行容器中执行命令 commit 创建一个新镜像来自一个容器 cp 拷贝文件/文件夹到一个容器 logs 获取一个容器日志 port 列出或指定容器端口映射 top 显示一个容器运行的进程 stats 显示容器资源使用统计 stop/start/restart 停止/启动一个或多个容器 rm 删除一个或多个容器
开开心心,上班!
快快乐乐,游玩!
及时行乐!

浙公网安备 33010602011771号