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     删除一个或多个容器    

  

 

posted @ 2020-03-27 20:31  菜菜920  阅读(170)  评论(0)    收藏  举报