首页 > 其他分享 >Docker基础命令及面试问题

Docker基础命令及面试问题

时间:2023-04-17 18:13:47浏览次数:41  
标签:容器 命令 虚拟机 面试 镜像 Docker root docker

Docker 包括三个基本概念:

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

docker 基础命令

docker的守护进程查看

systemctl status docker 

docker 镜像查看

docker image ls

docker  容器查看

docker ls

docker Registry 配置和查看

cat   /etc/docker/daemon.json

添加权限并启动docker 

重新配置daemon.json 文件

systemctl daemon reload   

启动docker

systemctl start docker

设置开机自启动

systemctl enable docker.service

查看docker 版本

docker  -v

查看docker配置引擎信息

docker  info 

查看docker相关进程

ps -ef | grep  docker

查看活跃容器

docker  ps

查看全部容器

docker  ps -a

停止容器

docker stop id

删除容器  

docker rm   id

在容器内容和宿主机中查看容器中的进程信息

docker exec -it container Id   ps -ef

  我们可以使用docker exec命令进入容器PID名空间,并执行应用。

  通过ps -ef命令,可以看到每个容器都包含一个PID为1的进程

  进入宿主机后通过docker  top  id  查看容器的进程信息

通过docker ps  查看容器id,再通过docker inspect id 查看容器信息

常见面试题

一、聊聊:docker与传统虚拟机的区别什么?
1、传统虚拟机是需要安装整个操作系统的,然后再在上面安装业务应用,启动应用,通常需要几分钟去启动应用,而docker是直接使用镜像来运行业务容器的,其容器启动属于秒级别;
2、Docker需要的资源更少,Docker在操作系统级别进行虚拟化,Docker容器和内核交互,几乎没有性能损耗,而虚拟机运行着整个操作系统,占用物理机的资源就比较多;
3、Docker更轻量,Docker的架构可以共用一个内核与共享应用程序库,所占内存极小;同样的硬件环境,Docker运行的镜像数远多于虚拟机数量,对系统的利用率非常高;
4、与虚拟机相比,Docker隔离性更弱,Docker属于进程之间的隔离,虚拟机可实现系统级别隔离;
5、Docker的安全性也更弱,Docker的租户root和宿主机root相同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作。虚拟机租户root权限和宿主机的root虚拟机权限是分离的,并且虚拟机利用如Intel的VT-d和VT-x的ring-1硬件隔离技术,这种技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离;
6、Docker的集中化管理工具还不算成熟,各种虚拟化技术都有成熟的管理工具,比如:VMware vCenter提供完备的虚拟机管理能力;
7、Docker对业务的高可用支持是通过快速重新部署实现的,虚拟化具备负载均衡,高可用、容错、迁移和数据保护等经过生产实践检验的成熟保障机制,Vmware可承诺虚拟机99.999%高可用,保证业务连续性;
8、虚拟化创建是分钟级别的,Docker容器创建是秒级别的,Docker的快速迭代性,决定了无论是开发、测试、部署都可以节省大量时间;
9、虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化,Docker在Dockerfile中记录了容器构建过程,可在集群中实现快速分发和快速部署。

 

聊聊:什么是 Docker 镜像?
Docker 镜像是 Docker 容器的源代码,Docker 镜像用于创建容器。使用build 命令创建镜像。

聊聊:什么是 Docker 容器?
Docker 容器包括应用程序及其所有依赖项,作为操作系统的独立进程运行。

聊聊:Docker 容器有几种状态?
四种状态:运行、已暂停、重新启动、已退出。

 

标签:容器,命令,虚拟机,面试,镜像,Docker,root,docker
From: https://www.cnblogs.com/kkhan/p/17326688.html

相关文章

  • Redis中的Hash类型常用命令
    一、hset命令作用:设置hash类型值;格式:hsetkeyfieldvalue案例:192.168.0.111:0>hsetproductname苹果"1"192.168.0.111:0>hsetproductprice5"1"二、hget命令作用:获取hash类型某个key下的某个field的值格式:hgetkeyfield案例:192.168.0.111:0>hgetproductname"苹果&qu......
  • 连接MongoDB+Docker安装MongoDB
    一、连接MongoDB工具:studio3T下载:https://studio3t.com/download-thank-you/?OS=win641、无设置密码最终成功页面2、设置了密码后续同1二、安装MongoDB版本:5.0.5参考:https://www.cnblogs.com/cwp-bg/p/10403327.htmlhttps://blog.csdn.net/weixin_4......
  • TAB命令补全及补全路径原理
    tab建可以实现命令及路径等补全,提高输入效率,避免出错命令补全:外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令。命令的子命令补全,需要安装bash-completion路径补全:把用户给出的字符串当做路径开头,并在其......
  • Git flow命令
    安装方法:brew install git-flow基本使用:初始化:gitflowinit本地新建feature:gitflowfeaturestartbranchname  (注意:生成的分支号会带feature)将本地featurePUSH到远程:gitflowfeaturepublishbranchname获取Publish的Feature:gitflowfeaturepulloriginbranchname完成......
  • ansible的docker_container模块使用
    使用docker_container模块创建容器示例:----hosts:myserveripremote_user:root#执行用户gather_facts:false#屏蔽系统信息返回vars:ansible_python_interpreter:/usr/bin/python3#定义ansible使用python3的环境serial:"100%"#更新比列,可以......
  • Git和VIM常用命令速记
    查看主机名称:gitremoteshow手动建立追踪关系:gitbranch--set-upstreammasterorigin/next//指定master分支追踪origin/next分支重新绑定追踪关系:gitremoteremoveorigin//如果本地代码,已经关联了远程分支,则需要先解除关联[email protected]:......
  • linux系统查找文件命令find,xargs
    FIND命令形式:findpathname-options[-print-exec-ok]pathname要查找的路径(.表示当前目录,/表示系统根目录)-print输出-exec 对匹配的文件执行该参数所给出的shell命令-execrm{}\;注意{}和\;之间的空格-ok以一种更为安全的模式来执行shell命令find命令有很多选项或表达式,每一......
  • Dockerfile详细使用、docker私有仓库、dockercompose介绍、dockerpose部署flask+redis
    昨日内容#1容器其他操作1dockerstart容器id2dockerstop容器id3dockerrm容器id4dockerrm`dockerps-aq`#正在运行的容器不能删除5dockerexec容器id命令6dockercp宿主机目录容器id:容器目录#目录要存在7docker......
  • 1 redis介绍 、2 redis linux下安装 、3 redis启动方式、4 redis典型场景 、5 redis通
    目录1redis介绍2redislinux下安装3redis启动方式3.1最简启动3.2动态参数启动3.3配置文件启动3.4客户端连接命令4redis典型场景5redis通用命令6数据结构和内部编码7redis字符串类型1redis介绍#特性Redis特性(8个)#速度快:10wops(每秒10w读写),数据存在内存中,c语言实现......
  • top 命令之如何查杀stopped进程
    现象:一般较常见的是5种状态码: D不可中断uninterruptiblesleep(usuallyIO)R运行runnable(onrunqueue) S中断sleeping T停止tracedorstopped Z僵死adefunct(”zombie”)process所以,可以用下面命令 查看stopped的进程信息,进而使用kill命......