Docker基本管理和概念:
Docker是什么:开源的应用容器引擎。基于go语言开发的。运行在Linux系统当中的开源 的,轻量级的“虚拟机”。
Docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的,可移植,自给 自足的容器。
Docker的宿主机是Linux系统。集装箱可以理解为相互隔绝的容器(组件,应用程序APP), 每个容器都是一个独立的应用程序。
Docker的设计宗旨: build,ship and run any app,anywhere
Build:封装好的程序,只要部署即可使用,一次封装。
Ship and run any aopp:一次分装完成之后的程序,可以在任何环境运行。
Anywhere:任意宿主机。
一次封装,到处运行。
封装,分布,部署,运行,维护,运行,销毁。
可以一整套的方式管理应用程序的生命周期。
Docker为什么受欢迎:
Linux的命令空间 namespace。是一种内核的特性,允许将一组系统资源隔离。在一个命名的进程在系统当中可以拥有独立的资源。
面试题:
Namespace的六项隔离:
基于这六个隔离项,实现了容器和容器之间,以及容器和宿主之间的资源隔离。
Docker的核心组件:
Docker镜像也是一个压缩包,不是一个解压文件,是一个环境部署的脚本,甚至包含了完整的操作系统。
下载到了本地:镜像 容器,日志 /var/lib/docker 宿主机。
Docker与传统虚拟机的区别:
特性 docker 虚拟机
启动速度 秒级 分钟级
计算能力损耗 几乎无 损耗50%
性能 接近原生系统 弱于原生系统
系统支持量 上千个 硬件系统来看(几十个)
隔离性 资源隔离(只是) 完全隔离
安全性 安全性差 安全性
Docker version 查看docker的版本
Docker只能支持64位系统
Docker info 查看docker所有信息
Docker安装完毕之后,客户端和服务端都在一起。都运行在一台机器上。
Overlay2:docker使用的文件系统驱动。
OverlayFS: overlay file system :联合文件系统,用于适配宿主机的文件系统,可以自动适配。
lowerDir:底层目录 docker的底层文件系统。一个或者多个镜像文件的根文件系统。
UpperDir:可写层 可以在容器运行时,在容器内进行写操作。实现容器的可写性。
MergeDir:合并目录 lowerdir和upperdir合并起来,就是容器的文件系统,用户看到的也就 是这个合并的视图
WorkDir:工作目录 处理文件系统的变更,当在容器内进行写操作时, overlayfs使用workdir; 来追踪文件系统的变更
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台阿里云镜像加速
一个镜像有多个标签,删除时只是删除标签,如果只剩最后一个,那么就是删除的镜像本身。
如果镜像已经被容器使用,先停容器,再删除容器,最后再删除镜像。
给予镜像创建容器:
Exit 退出容器
-d:可以让创建的容器以守护进程在后台运行,容器所运行的程序不会结束
没有镜像可以自行拉取, -d结合,给容器持续的命令,后台没有指令,容器没有可 运行的程序,将会直接退出
-it 形成交互式会话
d 后台运行 /bin/bash
--name 给容器命名
Nginx:1.22.0 镜像名称和标签,如果本地没有。可以自动下载
删除镜像;
删除容器 。 运行中的容器必须停止才能删除
导出的容器还是一个镜像,必须要 run create 才能成为容器
已经配置好的导出的容器镜像,可以直接使用(我们都是用的开发已经设置,配置好的容器 镜像)
总结:
Docker:就是一个轻量级的虚拟机,宿主机是Linux
Docker 镜像 容器 仓库
Docker search 搜索镜像
Docker pull nginx:1.22.0 获取镜像
Docker images 查看镜像
Docker rmi -f 强制删除镜像(删除了在运行的容器的镜像,对容器会有影响吗?)
Docker tag nginx:1.22.0(在镜像当中已有的标签)nginx:guoqi(给她新的标签)硬链接(复 制了源镜像)
Docker save -o /opt/nginx.tar(一般用XXX.tar)nginx:1.22.0(这个镜像要已经存在)
Docker load -i xxx.tar
Docker push pplok1230/nginx:guoqi
Pplok1230:dockerhup的用户名 镜像名称和标签
Docker容器:
-itd: 表示后台运行指定程序,而且创建一个交互式的shell。用户输入操作命令
Docker run -itd nginx:1.22.0 --name test1 /bin/bash
如果容器灭有执行命令,容器创建完成之后将会立刻退出
Docker exec -it 容器名/容器ID
Docker ps 只显示正在运行的容器
Docker -ps -a 显示所有容器,包括没有运行的容器
Docker export -o guoqi.tar 容器名/容器ID
Docker import guoqi.tar --nginx:guoqi (尽量不要重复标签名)
Docker cp 容器名/容器ip:/etc/nginx/nginx.conf /opt
Docker cp /opt/123.txt 容器/容器ip:/etc/nginx/nginx.conf
Docker rm 删除容器
正在运行的容器
Docker rm -f
Docker stop
Docker rm