Docker-基本管理命令
- 概述
- 简介
- 区别
- 使用场景
- 优势
- 核心概念
- 安装
- 基础安装
- 设置镜像加速
- 网络优化
- 常用命令与基础操作
概述
简介
Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。(沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响,即沙箱提供一个限制该应用程序对系统资源的访问权限)。容器不依赖于系统,依赖于引擎。容器是一个应用层抽象;虚拟机(VM)是一个物理硬件层抽象。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用 ,例如前端,后端以及数据库。
可以在任意环境部署的原因:只要能装上docker-engine 引擎,就能使用;它实现了docker环境的跨平台。
区别
Docker | 虚拟机 | |
运行性能 | 接近原生(内核运行) | 5%左右损失 |
启动速度 | 秒级 | 分钟级 |
磁盘占用 | MB | GB |
数量 | 成百上千 | 一般几十台 |
隔离性 | 进程级别 | 系统级别(更彻底) |
操作系统 | 主要支持linux | 几乎所有 |
封装程度 | 只打包项目代码和依赖关系,共享主机内核 | 完整的操作系统,与宿主机隔离 |
使用场景
打包应用程序简化部署。可脱离底层硬件任意迁移。
优势
更快速的交付和部署
高效的部署和扩容
更高的资源利用率
更简单的管理
核心概念
镜像:一个面向Docker容器引擎的只读模板
容器:从镜像创建的运行实例
仓库:集中保存镜像的地方
安装
基础安装
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装依赖包
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#添加阿里云镜像源
yum -y install docker-ce #安装Docker-CE
systemctl start docker
systemctl enable docker
设置镜像加速
可登录阿里云官网,搜索“容器镜像服务”或直接访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
进入界面,能看到自己的加速器地址(登录状态):
sudo是普通用户能执行管理用户部分功能所使用的提权命令,可不加。
网络优化
echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
sysctl -p
systemctl restart network
systemctl restart docker
生产环境下可优化的其它配置
“graph”: “/data/docker” (数据目录)
“storage-driver”: “overlay2”(存储引擎)
“insecure-registries”:[“registry.access.redhat.com”,“quary.io”](私有仓库)
“registry-mirrors”: [“https://q”](镜像加速)
“bip”: “172.7.5.1/24”(docker网络) #可和宿主机IP对应,方便定位故障节点位置
“exec-opts”:[“native.cgroupdriver=systemd”] (启动时候的额外参数(驱动)
“live-restore”: true (当docker容器引擎挂掉的时候,使用docker跑起来的容器还能运行(分离)
常用命令与基础操作
镜像基本命令
docker search 关键字(nginx) #镜像搜索
docker pull 关键字(nginx) #镜像下载
docker images #镜像查询
docker inspect 镜像ID #查看镜像详细信息
docker tag 镜像标签 新标签 #添加镜像标签
docker tag nginx:latest nginx:web
docker rmi 镜像标签(nginx:latest) #删除镜像
-f 可以全部删除
docker save -o nginx_img nginx:latest #镜像输出
docker save -o /opt/nginx nginx:latest #存出镜像并命名为nginx,存到/opt目录下
docker load <镜像文件(nginx_img) #镜像导入
容器基本命令
docker version #容器版本
docker ps -a #容器列表查询
-a 列出最近一次启动的容器
docker create -it nginx:latest /bin/bash #创建容器
docker start 容器ID #启动容器
docker stop 容器ID #终止容器
docker run 镜像名称 操作指令 #一次性容器操作
docker run centos:7 /usr/bin/bash -c ls /
执行完成会关闭,状态是Exited(容器可以做一次性的处理,处理完就释放资源,做到了最小成本控制)
docker exec -it 容器ID /bin/bash #进入容器,该容器一定要在Up状态
docker run -it 容器名 环境
docker run -it nginx:latest /bin/bash
-i 让容器的标准输入保持打开
-t 让Docker分配一个伪终端
cat 容器ID | docker import -镜像名 (会生成镜像,不会生成容器) #导入容器
docker export 容器ID > 导出的容器名 #导出容器
docker rm 容器ID (必须先停止再删除) #删除容器
docker ps -a | awk '{print "docker rm "$1}' | bash #批量删除“exit”状态的容器