一、docker是什么:
1.docker是什么:一个开源的应用容器引擎,基于go语言开发的,docker运行在linux的容器化工具,可以理解为轻量级的一个虚拟机。可以在任何主机上轻松创建的一个轻量级、可移植的自给自足的容器;鲸鱼-------------宿主机 集装箱就是---------------一个一个独立运行的容器,而且是相互隔离的容器,一个容器就是一个独立的应用程序。
二、容器化的特点:
1.灵活,最复杂的程序也可以实现容器化
2.轻量级,容器利用和共享主机内核
3.可互换,可以及时部署升级,及时更新
4. 便携性,可以在本地构建,也可以部署到云,可以在任何地方运行
5.可扩展,依赖于K8S
三、容器是什么:容器是在linux上运行,与其它容器共享主机内核以及主机的资源,独立运行,相互隔离的进程(应用程序);轻量级,容器运行时占用一定的资源,但是不占用其它任务资源。
四、docker和虚拟机之间的区别
五、linux的命名空间(面试题)
docker使用内核技术的两个重要的技术:1.namespace实现资源隔离
2.cgroup资源限制
六、资源隔离通过namespace命名空间实现:linux有6项隔离,
namespace命名空间:
1.uts 主机名与域名,通过在uts命名空间创建进程,这个进程可以看到自己的主机名和域名,于宿主机的其它进程进行分隔。
2.ipc 隔离的是信号量(kill -9),消息队列(systemctl stop firewalld),共享内存,这样进程就有独立的通信资源,不受其它进程影响。
3.pid 进程编号,每个进程在系统中都有一个唯一标识,唯一标识就是pid,使用不同的pid保证进程之间不发生冲突。
4.netwoker 网络设备,网络端口等等,在network空间中,每个进程都有自己的独立端口号,靠端口号,可以实现网络访问的隔离。
5.mount 挂载点(文件系统),每个进程使用不同的文件系统挂载点,不同的mount的文件系统互不干扰。
6.user 用户和用户组,在user当中每个进程都有独立的用户和用户组,每个用户之间相互不受影响。
七、docker的核心概念:
1.镜像:镜像是创建容器的基础,类似于虚拟机的快照,通过这个快照可以快速的创建一个容器;在镜像当中,已经封装好了程序运行需要代码,库,运行时间,环境变量以及配置文件。
2.容器:基于镜像运行起来的进程就是容器,容器之间互相独立、互相隔离
3.仓库:保存镜像的地方,分为公有仓库和私有仓库,公有仓库就是阿里云,私有仓库不对外提供访问,自己使用。
八、安装docker
安装依赖包
指定阿里云镜像下载
安装docker
启动docker
设置加速站点
拉镜像:docker pull
{
"registry-mirrors": ["https://hub.littlediary.cn/"]
}
查看拉到的镜像:docker image images id是镜像的唯一标识
如何删除镜像:docker rmi
镜像被容器使用且容器正在运行,-f才能强制删除镜像;
为本地的镜像添加新的标签:docker tag 镜像名 镜像名的新标签
导出镜像:将镜像保存成为本地文件
导入镜像:
上传仓库:先登录仓库login,然后才能上传push,密码为ding@198688
九、1.容器操作,前提是基于镜像创建的
-i:容器和用户之间可以进行交互
-t:开启一个伪终端,用户操作
-it:开启一个终端,让用户可以用交互式会话访问容器,进行操作
2.查看容器:
CONTAINER ID:容器的唯一的标识容器所依赖的镜像IMAGE:command: 容器默认运行的命令
CREATED:容器的创建时间
ports:容器暴露的端口
NAMES: 容器的名称,系统随机分配的 status:创建成功
3.开启容器
4.停止容器
5.容器的生命周期:
拉取镜像-----创建容器----修改镜像-----重启容器-----停止容器-----删除容器----删除镜像
6. 查看所有容器,包括未运行的容器:docker ps -a
7.只查看运行起来的容器: docker ps
8.docker run:如果本地没有镜像的情况下,run是先拉再运行
9.容器内部如果没有命令执行,容器会自动终止运行,如果有命令,执行完指定命令之后,容器也会终止运行;容器要长期运行,稳定运行,必须有一个执行的可执行命令。-itd d:后台运行命令,这样容器就不会停止运行
10.怎么进入容器内部查看:两种方法
11.如何查看容器的IP
12.如何查看容器的日志输出
13
14.端口映射:本地端口和容器端口进行映射的两种方式
-P:随机指定宿主机的端口和容器的端口进行映射,端口号是从32768开始
-p:指定端口
15.如何把宿主机的文件复制到容器当中:宿主机名+容器名:复制的路径。容器名是不可以重复的
又如何把容器中的文件复制出来
16.导出容器 docker export -o
17.导入容器,导入的容器是一个镜像不会成为容器
18.删除容器
19.删除镜像,必须要先停止容器