Docker ----基本管理
一.Docker 介绍
【1】.Docker
Docker 是一个开源的应用容器引擎:让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。是一个轻量级的“虚拟机”,容器是完全使用沙箱机制,相互之间不会有任何接口。
【2】.Docker与虚拟机的区别
相同点:
1.可在不同的主机之间迁移
2.都具备root的权限
3.都可以远程操作和控制
4.都有备份,回滚操作
不同点:
1.操作系统上:
**docker**:在性能上有优势,可以轻易的运行多个操作系统;
虚拟机:可以安装任何系统,但是性能不及容器。
2.原理:
docker:和宿主机共享内核,所有容器运行在容器引擎之上,容器并非一个完整的操作系统,所有容器共享操作系统,在进程级进行隔离。
虚拟机:每一个虚拟机都建立在虚拟的硬件之上,提供指令级的虚拟,具备一个完整的操作系统。
3.优点:
docker:高效、集中。一个硬件节点可以运行数以百计的的容器,非常节省资源,QoS 会尽量满足,但不保证一定满足。内核由提供者升级,服务由服务提供者管理。
虚拟机:对操作系统具有绝对权限,对系统版本和系统升级具有完全的管理权限。具有一整套的的资源:CPU、RAM 和磁盘。QoS 是有保证的,每一个虚拟机就像一个真实的物理机一样,可以实现不同的操作系统运行在同一物理节点上。
4.缺点:
docker:对内核没有控制权限,只有容器的提供者具备升级权限。只有一个内核运行在物理节点上,几乎不能实现不同的操作系统混合。容器提供者一般仅提供少数的几个操作系统。
虚拟机:每一台虚拟机都具有更大的负载,耗费更多的资源,用户需要全权维护和管理。一台物理机上能够运行的虚拟机非常有限。
【3】.Docker 的使用场景
打包应用程序简化部署
可脱离底层硬件任意迁移
【4】.核心概念
镜像,容器,仓库
二.centos安装Docker环境
【1】.Centos 安装Docker 的两种方式:
使用 curl 获得 Docker 的安装脚本进行安装;
使用 yum 仓库来安装 Docker(推荐使用!!!)。
【2】.安装部署19版的docker
【1】 安装依赖包
yum install yum-utils device-mapper-persistent-data lvm2 -y
【2】 设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
【3】 安装Docker-CE社区版本
yum install docker-ce -y
【4】 关闭核心防护
setenforce 0
### 永久关闭防火墙(网络资源控制时,暂时不关闭)
vim /etc/sysconfig/selinux
SELINUX=disabled
【5】 启动docker
systemctl start docker.service
systemctl enable docker.service
【6】查看docker存放的位置和环境变量(默认能识别的路径)
which docker
/usr/bin/docker
echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
【3】.镜像加速(环境优化)
此操作会让我们下载镜像时,速度会有明显的加速
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0eu67kas.mirror.aliyuncs.com"]
}
EOF
### /etc/docker/生成一个daemon.json
### 重新加载进程
systemctl daemon-reload
systemctl restart docker
【4】.网络优化
//数据转换
vim /etc/sysctl.conf ### 末尾添加
net.ipv4.ip_forward=1
sysctl -p
service network restart
systemctl restart docker
这样Docker的基本环境搭建好了 !~!
三.镜像的基本命令
【1】查看版本
docker version
【2】搜索镜像
docker search 镜像名
docker search nginx
【3】下载镜像
docker pull 镜像
docker pull nginx
## 下载后存在在 cd /var/lib/docker/image/overlay2/
[root@localhost overlay2]# ls
distribution imagedb layerdb repositories.json
【4】查看已经下载的镜像
docker images
【5】获取镜像信息
docker inspect 镜像的ID
【6】创建镜像新标签
docker tag 镜像标签 新的标签
docker tag nginx:latest nginx:new
【7】删除镜像
docker rmi 镜像:标签
docker rmi nginx:new
【8】把镜像存放到指定的路径或目录或文件下
docker save -o /路径/文件名 镜像名称:标签
docker save -o /opt/nginx nginx:latest
【9】载入镜像(前提镜像删除后)
docker load < 文件名
docker load < nginx
四.容器的基本命令
【1】创建容器
docker create -it 镜像名称 /bin/bash
-i:容器的标准输入保持打开
-t:让docker分配一个伪终端
docker create -it nginx:latest /bin/bash
【2】查看容器
docker ps -a
// -a:列出最近一次启动的容器
【3】启动容器
docker start 容器ID
docker start 0660ae2f54b8
【4】停止容器
docker stop 容器ID
【5】进入容器
第一种:docker run -it 镜像名称 /终端
docker run -it nginx:latest /bin/bash
root@6d339ab9beec:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
// 退出容器:exit
第二种:docker exec -it 容器ID /终端(容器要在开启状态)
docker exec -it 0660ae2f54b8 /bin/bash
root@0660ae2f54b8:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
【6】导出容器
docker export 容器ID > 文件名
docker export 0660ae2f54b8 > nginx_a
【7】导入容器
cat 文件名 | docker import - 镜像
只会生成镜像,不会创建容器
docker import - nginx:web