首页 > 其他分享 >docker的介绍和一部分基础命令

docker的介绍和一部分基础命令

时间:2024-11-10 14:46:07浏览次数:3  
标签:容器 -- 介绍 OPTIONS 命令 kill docker Docker

一:docker简介

定义

根据官方的定义,Docker是以Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建、发布和运行分布式应用的平台。

docker解决了什么问题

1. 解决了应用程序本地运行环境与生产运行环境不一致的问题
2. 解决了应用程序资源使用的问题,docker会一开始就为每个程序指定内存分配和CPU分配
3. 让快速扩展、弹性伸缩变得简单

docker技术边界

docker是容器化技术,针对的是应用及应用所依赖的环境做容器化。遵循单一原则,一个容器只运行一个主进程。如果将多个进程都部署在一个容器中,弊端很多。比如更新某个进程的镜像时,其他进程也会被迫重启,如果一个进程出问题导致容器挂了,所有进程都将无法访问。再根据官网提倡的原则而言,容器 = 应用 + 依赖的执行环境。而不是像虚拟机一样,把一堆进程都部署在一起。

docker给我们带来了哪些改变

1. 软件交付方式发生了变化
2. 替代了虚拟机
3. 改变了我们体验软件的模式
4. 降低了企业成本
5. 促进了持续集成、持续部署的发展
6. 促进了微服务的发展

docker和虚拟机的区别

1. vm(虚拟机)与docker(容器)框架,直观上来讲vm多了一层guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源,所以资源利用率相对docker低

2. 服务器虚拟化解决的核心问题是资源调配,而容器解决的核心问题是应用开发、测试和部署。

3. 容器技术严格来说并不是虚拟化,没有客户机操作系统,是共享内核的.

docker基本架构

1. 镜像(Image):Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统
2. 容器(Container):容器是独立运行的一个或一组应用,是镜像运行时的实体
3. 客户端(client):Docker 客户端通过命令行或者其他工具使用 Docker SDK(https://docs.docker.com/develop/sdk/)) 与 Docker 的守护进程通信
4. 主机(host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器
5. 注册中心(Registry):Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub(https://hub.docker.com)) 提供了庞大的镜像集合供使用。
6. Docker Machine:Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker

二:docker 容器隔离

RootFs

rootfs 是Docker 容器在启动时内部进程可见的文件系统,即Docker容器的根目录。rootfs通常包含一个操作系统运行所需的文件系统,例如可能包含经典的类Unix操作系统中的目录系统,如/dev、/proc、/bin、/etc、/lib、/usr、/tmp及运行Docker容器所需的配置文件、工具等。

Linux Namespace

Namespace是 Linux 内核用来隔离内核资源的方式。Linux实现了六种不同类型的命名空间。每个命名空间的用途是将特定的全局系统资源包装在抽象中,使命名空间中的进程看起来它们具有自己的全局资源独立实例。命名空间的总体目标之一是支持容器的实现。

lsns命令列出系统命名空间

sudo lsns --output-all //列出所有命名空间
lsns --output-all      //列出当前用户的命名空间

三:docker 常用命令

启动docker服务端:sudo systemctl start docker。关闭:sudo systemctl stop docker。对于客户端来说,直接使用docker + 参数即可。

Docker 环境信息命令

docker info

docker info : 显示 Docker 系统信息,包括镜像和容器数。

docker info [OPTIONS]

docker version

docker version :显示 Docker 版本信息。

docker version [OPTIONS]
OPTIONS说明:
-f :指定返回值的模板文件。

系统日志信息常用命令

docker events 从服务器获取实时事件

docker events [OPTIONS]
OPTIONS说明:
-f :根据条件过滤事件;
--since :从指定的时间戳后显示所有事件;
--until :流水时间显示到指定的时间为止

/第一个终端执行
docker events
//第二个终端操作容器
docker start/stop/restart
//查看第一个终端输出

docker logs : 获取容器的日志

docker logs [OPTIONS] CONTAINER
OPTIONS说明:
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志

docker logs -f mynginx

docker history:查看指定镜像的创建历史。

docker history [OPTIONS] IMAGE
OPTIONS说明:
-H :以可读的格式打印镜像大小和日期,默认为true;
--no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID

docker history mynginx:v1

容器的生命周期管理命令

docker create

创建一个新的容器但不启动它,语法同docker run。

docker run

docker run :创建一个新的容器并运行一个命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-d, --detach:后台运行容器并打印容器id

-h, --hostname string:设置主机名

-i, --interactive:保持标准输入设备处于打开状态

-t, --tty:分配一个伪终端设备

-u, --user: 用户名或用户ID (格式: <name|uid>[:<group|gid>])

docker start/stop/restart

docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器

docker restart mynginx
docker stop mynginx
docker start myngin

docker kill :杀掉一个运行中的容器

docker kill [OPTIONS] CONTAINER [CONTAINER...] OPTIONS说明: -s :向容器发送一个信号
docker kill -s KILL mynginx
docker kill -s TERM mynginx
        如果容器终止时的状态对用户而言很重要,用户可能会想要了解docker kill 和docker stop之间的区别。 docker kill 的行为和标准的kill 命令行程序并不相同。kill 程序的默认工作方式是向指定的进程发送TERM信号(即信号值为15)。这个信号表示程序应该被终止,但是不要强迫程序终止。当这个信号被处理时,大多数程序将执行某种清理工作,但是该程序也可以执行其他操作,包括忽略该信号。而docker kill 对正在运行的程序使用的是KILL信号,这使得该进程没办法处理终止过程。这就意味着一些诸如包含运行进程ID之类的文件可能会残留在文件系统中。根据应该用程序管理状态的能力,如果再次启动容器,这可能会也可能不会造成问题。

docker stop 命令则像kill 命令那样工作,发送的是一个TERM型号

由于其中的命令实在太多,我就不一一列举了,大家可以看Docker 命令大全 | 菜鸟教程 这篇。谢谢大家!https://github.com/0voice

标签:容器,--,介绍,OPTIONS,命令,kill,docker,Docker
From: https://blog.csdn.net/2301_76446998/article/details/143526271

相关文章

  • Repadmin 是一个由 Microsoft 提供的命令行工具,用于诊断和管理 Active Directory 域控
    Repadmin|MicrosoftLearnRepadmin是一个由Microsoft提供的命令行工具,用于诊断和管理ActiveDirectory域控制器间的复制问题。它最初是在Windows2000Server时期随ActiveDirectory服务一起推出的,并随着WindowsServer版本的更新不断增强和改进。其主要功能是帮助......
  • Linux常用命令
    Linux文件与路径特殊路径/         如果出现在最前方表示为根目录,如果出现在路径中表示路径分割符     如:     /home/gl     第一个/表示根目录     第二个/表示路径分割符~     表示家......
  • CMD常见命令及用法
    简介ASSOC    显示或修改文件扩展名关联。ATTRIB    显示或更改文件属性。BREAK    设置或清除扩展式CTRL+C检查。BCDEDIT   设置启动数据库中的属性以控制启动加载。CACLS    显示或修改文件的访问控制列表(ACL)。CALL ......
  • C++ namespace介绍
    我们来看一下这一段代码:intrand=0;intmain(){ printf("%d",rand); return0;}运行结果如下:当我们添加一个头文件stdlib.h时,运行结果如下:我们可以发现,报错了。这里的问题出现在我们在全局定义了一个变量rand.并且导入了一个头文件stdlib.h在stdlib.h这个......
  • "stackblitz": { "startCommand": "yarn run test:unit" } 这个命令的作用是
    在package.json文件中,stackblitz字段用于配置StackBlitz环境中的特定设置。StackBlitz是一个基于云的开发环境,允许用户在线编写、运行和调试代码。startCommand字段指定了在StackBlitz环境中启动项目时应该执行的命令。startCommand字段的作用"stackblitz":{"star......
  • 在Windows中,使用批处理(.bat)文件可以通过调用命令来实现自动拨号连接。以下是通过批处
    在Windows中,使用批处理(.bat)文件可以通过调用命令来实现自动拨号连接。以下是通过批处理文件实现PPPoE(拨号)连接的基本步骤:步骤1:配置拨号连接(PPPoE)在Windows中,你首先需要设置一个PPPoE拨号连接。以下是设置步骤:打开网络连接设置:点击开始菜单,输入“网络和共享中心”并打开......
  • VMware Tanzu CLI 1.5.0 - VMware Kubernetes 发新版的命令行工具
    VMwareTanzuCLI1.5.0-VMwareKubernetes发新版的命令行工具VMware构建、签名和支持的开源Kubernetes容器编排平台的完整分发版请访问原文链接:https://sysin.org/blog/vmware-tanzu-cli/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareTanzu命令行......
  • 【C++】详细介绍:priority_queue的使用、适配器、deque介绍、仿函数
    目录一、介绍二、使用三、函数模版和类模板的区别四、适配器1、适配器适配栈扩展:2、deque(双端队列)缺省模版五、仿函数一、介绍(1)、priority_queue称为优先级队列,是一种容器适配器,不是队列也不是容器。(2)、该结构的底层是堆结构,默认是大堆,用模版参数来区分是大堆......
  • Linux复习2(常用命令与进程线程)
    常用命令:进入管理员模式:sudosu退出:exit;查看当前目录文件:ls(-a:显示隐藏文件;-l:查看详细信息)查看当前目录位置:pwd查看文件内容:catmoreheadtail(head与tail可以加行数)查看多个:cata.cb.c拼接文件:cata.cb.c->d.c查看帮助文档:manname创......
  • SpringBoot续+SpringMVC入门介绍
    文章目录1.BS/CS架构1.1基本概况说明1.2两个架构的对比2.web服务器3.修改端口号4.其他的项目创建和运行的方法5.SpringMVC入门5.1基本介绍5.2创建说明5.3修改国内源5.4注解和链接5.5两类请求的引入##get请求##post请求##设置请求类型1.BS/CS架构1.1基本概况说明......