一文详解Docker容器(Container)

news/2024/7/4 7:47:44 标签: docker, 容器, 运维, spring cloud, 后端, 分布式, 云原生

目录

基本介绍

常用命令

docker%20run%20%EF%BC%9A%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84%E5%AE%B9%E5%99%A8-toc" style="margin-left:80px;">docker run :创建一个新的容器

docker%20ps%20%EF%BC%9A%E5%88%97%E5%87%BA%20Docker%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E4%BF%A1%E6%81%AF-toc" style="margin-left:80px;">docker ps :列出 Docker容器相关信息

docker%20stop%20%EF%BC%9A%E5%81%9C%E6%AD%A2%E4%B8%80%E4%B8%AA%E8%BF%90%E8%A1%8C%E4%B8%AD%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8%C2%A0-toc" style="margin-left:80px;">docker stop :停止一个运行中的 Docker容器 

docker%20rm%20%EF%BC%9A%C2%A0%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%E6%88%96%E8%80%85%E5%A4%9A%E4%B8%AA%E5%B7%B2%E7%BB%8F%E5%81%9C%E6%AD%A2%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8-toc" style="margin-left:80px;">docker rm : 删除一个或者多个已经停止的 Docker容器

docker%20pause%20%EF%BC%9A%E6%9A%82%E5%81%9C%20Docker%E5%AE%B9%E5%99%A8%20%E4%B8%AD%E6%89%80%E6%9C%89%E7%9A%84%E8%BF%9B%E7%A8%8B-toc" style="margin-left:80px;">docker pause :暂停 Docker容器 中所有的进程

docker%20unpause%20%3A%20%E6%81%A2%E5%A4%8D%20Docker%E5%AE%B9%E5%99%A8%20%E4%B8%AD%E6%89%80%E6%9C%89%E7%9A%84%E8%BF%9B%E7%A8%8B%C2%A0-toc" style="margin-left:80px;">docker unpause : 恢复 Docker容器 中所有的进程 

docker%20kill%20%3A%C2%A0%E6%9D%80%E6%8E%89%E4%B8%80%E4%B8%AA%E6%88%96%E8%80%85%E5%A4%9A%E4%B8%AA%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8%C2%A0-toc" style="margin-left:80px;">docker kill : 杀掉一个或者多个正在运行的 Docker容器 

docker%20exec%20%3A%C2%A0%E8%BF%90%E8%A1%8C%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4-toc" style="margin-left:80px;">docker exec : 运行的 Docker容器 中执行命令


基本介绍

Docker容器(Container) 是独立运行的一个或一组应用。 Docker容器(Container) 是从 Docker镜像(Images) 创建的运行实例,它可以被启动、开始、停止、 删除。 每个 Docker容器(Container) 都是相互隔离的、保证安全的平台。Docker容器(container) 和 Docker镜像(Images) 以及 Docker仓库 并称为 Docker 的三大核心概念。

容器保护三个状态:

  • 运行:进程正常运行

  • 暂停:进程暂停,CPU不再运行,并不释放内存

  • 停止:进程终止,回收进程占用的内存、CPU等资源

单个 Docker 镜像启动多个容器的示意图:

常用命令

docker%20run%20%EF%BC%9A%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84%E5%AE%B9%E5%99%A8">docker run :创建一个新的容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run --name containerName -p 80:80 -d nginx 

命令解读:

  • docker run :创建并运行一个容器

  • --name : 给容器起一个名字,比如叫做mn

  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

  • -d:后台运行容器

  • nginx:镜像名称,例如nginx

-p参数,是将容器端口映射到宿主机端口。

默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。

现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了:

docker exec -it mn bash 

命令解读:

  • docker exec :进入容器内部,执行一个命令

  • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

  • mn :要进入的容器的名称

  • bash:进入容器后执行的命令,bash是一个linux终端交互命令  

选项说明
-d, --detach=false指定容器运行于前台还是后台,默认为 false。
-i, --interactive=false打开 STDIN,用于控制台交互。
-t, --tty=false分配 tty 设备,该可以支持终端登录,默认为 false。
-u, --user=""指定容器的用户。
-a, --attach=[]登录容器(必须是以 docker run -d 启动的容器)。
-w, --workdir=""指定容器的工作目录。
-c, --cpu-shares=0设置容器 CPU 权重,在 CPU 共享场景使用。
-e, --env=[]指定环境变量,容器中可以使用该环境变量。
-m, --memory=""指定容器的内存上限。
-P, --publish-all=false指定容器暴露的端口。
-p, --publish=[]指定容器暴露的端口。
-h, --hostname=""指定容器的主机名。
-v, --volume=[]容器挂载存储卷,挂载到容器的某个目录。
–volumes-from=[]容器挂载其他容器上的卷,挂载到容器的某个目录。
–cap-add=[]添加权限。
–cap-drop=[]删除权限。
–cidfile=""运行容器后,在指定文件中写入容器 PID 值,一种典型的监控系统用法。
–cpuset=""设置容器可以使用哪些 CPU,此参数可以用来容器独占 CPU。
–device=[]添加主机设备给容器,相当于设备直通。
–dns=[]指定容器的 dns 服务器。
–dns-search=[]指定容器的 dns 搜索域名,写入到容器的 /etc/resolv.conf 文件。
–entrypoint=""覆盖 image 的入口点。
–env-file=[]指定环境变量文件,文件格式为每行一个环境变量。
–expose=[]指定容器暴露的端口,即修改镜像的暴露端口。
–link=[]指定容器间的关联,使用其他容器的 IP、env 等信息。
–lxc-conf=[]指定容器的配置文件,只有在指定 --exec-driver=lxc 时使用。
–name=""指定容器名字,后续可以通过名字进行容器管理,links 特性需要使用名字。
–net=“bridge”器网络设置:
1. bridge 使用 docker daemon 指定的网桥。
2. host //容器使用主机的网络。
3. container:NAME_or_ID >//使用其他容器的网路,共享 IP 和 PORT 等网络资源。
4. none 容器使用自己的网络(类似–net=bridge),但是不进行配置。
–privileged=false指定容器是否为特权容器,特权容器拥有所有的 capabilities。
–restart=“no”指定容器停止后的重启策略:
1. no:容器退出时不重启。
2. on-failure:容器故障退出(返回值非零)时重启。
3. always:容器退出时总是重启。
–rm=false指定容器停止后自动删除容器(不支持以 docker run -d 启动的容器)。
–sig-proxy=true设置由代理接受并处理信号,但是 SIGCHLD、SIGSTOP 和 SIGKILL 不能被代理。

docker%20ps%20%EF%BC%9A%E5%88%97%E5%87%BA%20Docker%E5%AE%B9%E5%99%A8%E7%9B%B8%E5%85%B3%E4%BF%A1%E6%81%AF">docker ps :列出 Docker容器相关信息

docker ps [OPTIONS]
选项说明
无参默认显示正在运行的容器
-a显示所有的容器,包括未运行的。
-f根据条件过滤显示的内容。
–format指定返回值的模板文件。
-l显示最近创建的容器
-n列出最近创建的n个容器
–no-trunc不截断输出。
-q静默模式,只显示容器编号。
-s显示总的文件大小。

docker%20stop%20%EF%BC%9A%E5%81%9C%E6%AD%A2%E4%B8%80%E4%B8%AA%E8%BF%90%E8%A1%8C%E4%B8%AD%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8%C2%A0">docker stop :停止一个运行中的 Docker容器 

docker stop [OPTIONS] CONTAINER [CONTAINER...]

docker%20rm%20%EF%BC%9A%C2%A0%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%E6%88%96%E8%80%85%E5%A4%9A%E4%B8%AA%E5%B7%B2%E7%BB%8F%E5%81%9C%E6%AD%A2%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8">docker rm : 删除一个或者多个已经停止的 Docker容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]
参数说明
-f通过 SIGKILL 信号强制删除一个运行中的容器
-l移除容器间的网络连接,而非容器本身。
-v:-v删除与容器关联的卷。

docker%20pause%20%EF%BC%9A%E6%9A%82%E5%81%9C%20Docker%E5%AE%B9%E5%99%A8%20%E4%B8%AD%E6%89%80%E6%9C%89%E7%9A%84%E8%BF%9B%E7%A8%8B">docker pause :暂停 Docker容器 中所有的进程

docker pause 命令可以用来暂停 Docker容器 中所有的进程。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。 

docker pause [OPTIONS] CONTAINER [CONTAINER...]

docker%20unpause%20%3A%20%E6%81%A2%E5%A4%8D%20Docker%E5%AE%B9%E5%99%A8%20%E4%B8%AD%E6%89%80%E6%9C%89%E7%9A%84%E8%BF%9B%E7%A8%8B%C2%A0">docker unpause : 恢复 Docker容器 中所有的进程 

docker unpause 命令可以用来恢复 Docker容器 中所有的进程。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。 

docker unpause [OPTIONS] CONTAINER [CONTAINER...]

docker%20kill%20%3A%C2%A0%E6%9D%80%E6%8E%89%E4%B8%80%E4%B8%AA%E6%88%96%E8%80%85%E5%A4%9A%E4%B8%AA%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8%C2%A0">docker kill : 杀掉一个或者多个正在运行的 Docker容器 

docker kill 命令可以用来杀掉一个或者多个正在运行的 Docker容器。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。 

docker kill [OPTIONS] CONTAINER [CONTAINER...]
参数说明
-s容器发送一个信号。

docker%20exec%20%3A%C2%A0%E8%BF%90%E8%A1%8C%E7%9A%84%20Docker%E5%AE%B9%E5%99%A8%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4">docker exec : 运行的 Docker容器 中执行命令

docker exec 命令可以用来在运行的 Docker容器 中执行命令。 docker exec命令是需要容器处于运行中且 PID 1 进程也处于运行中才能执行的操作。该命令后面的参数 container 可以是容器 Id 或者是容器名。

docker exec [options] container command [arg...]
参数描述
–detach, -d后台运行模式,在后台执行命令相关命令。
–detach-keys覆盖容器后台运行的一些参数信息。
–env, -e设置环境变量。
–interactive, -i展示容器输入信息 STDIN。
–privileged为命令提供一些扩展权限。
–tty, -t命令行交互模式。
–user, -u设置用户名。

http://www.niftyadmin.cn/n/5123104.html

相关文章

怎么查看摄像头的ip地址

在数字化时代,摄像头已经成为我们生活中不可或缺的一部分。无论是家庭安全、工作会议还是远程教育,摄像头都扮演着重要的角色。然而,有时候我们需要找到连接到互联网的摄像头的IP地址,以便进行配置、访问或保护我们的隐私。虎观代…

asp.net学生考试报名管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net学生考试报名管理系统是一套完善的web设计管理系统系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 应用技术:asp…

深眸科技以需求定制AI视觉解决方案,全面赋能产品外观缺陷检测

产品外观是影响产品质量最重要的因素之一,其平整度、有无瑕疵等不仅影响到产品美观,甚至能够直接影响产品本身的使用和后续加工,给企业带来重大经济损失。 随着人工智能技术的快速发展,机器视觉与AI技术的结合应用加速渗透进工业…

倾斜摄影三维模型根节点合并效率提升的技术方法分析

倾斜摄影三维模型根节点合并效率提升的技术方法分析 提高倾斜摄影三维模型根节点合并效率是倾斜摄影领域的重要挑战之一。快速而准确地处理大量数据和复杂的场景需要使用高效的技术方法。本文将探讨几种可以提高倾斜摄影三维模型根节点合并效率的技术方法。 首先,使…

MFC Windows 程序设计[333]之高亮列表控件(附源码)

MFC Windows 程序设计[333]之高亮列表控件 程序之美前言主体运行效果核心代码逻辑分析结束语程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Wind…

JavaScript 条件判断语句以及示例和详细代码解释为什么这样写(1)

在JavaScript中,条件判断语句主要有if语句和三元运算符。下面我将为你提供这两种条件判断语句的示例和详细代码解释。 1. if语句:if语句是最常用的条件判断语句,它根据给定的条件来决定是否执行特定的代码块。下面是一个使用if语句的示例代码…

题目 1120: C语言训练-“水仙花数“问题2python详解)——练气三层后期

✨博主:命运之光 🦄专栏:算法修炼之练气篇(C\C版) 🍓专栏:算法修炼之筑基篇(C\C版) 🍒专栏:算法修炼之练气篇(Python版) ✨…

win操作系统下安装Deepspeed

1. 准备cunda环境 下载cuda、cudnn, CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive Log in | NVIDIA Developerhttps://developer.nvidia.com/rdp/cudnn-download 选择版本可以参考里的Index of /anaconda/cloud/p…