一文详解Docker容器(Container)

news2024/11/15 10:01:43

目录

基本介绍

常用命令

docker run :创建一个新的容器

docker ps :列出 Docker容器相关信息

docker stop :停止一个运行中的 Docker容器 

docker rm : 删除一个或者多个已经停止的 Docker容器

docker pause :暂停 Docker容器 中所有的进程

docker unpause : 恢复 Docker容器 中所有的进程 

docker kill : 杀掉一个或者多个正在运行的 Docker容器 

docker exec : 运行的 Docker容器 中执行命令


基本介绍

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

容器保护三个状态:

  • 运行:进程正常运行

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

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

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

常用命令

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 ps :列出 Docker容器相关信息

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

docker stop :停止一个运行中的 Docker容器 

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

docker rm : 删除一个或者多个已经停止的 Docker容器

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

docker pause :暂停 Docker容器 中所有的进程

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

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

docker unpause : 恢复 Docker容器 中所有的进程 

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

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

docker kill : 杀掉一个或者多个正在运行的 Docker容器 

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

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

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.coloradmin.cn/o/1135281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么突破反爬虫机制

在当今的数字化时代,网络爬虫已经成为了收集信息和数据的重要工具。然而,许多网站和平台都配备了反爬虫机制,以防止恶意攻击和过度访问。对于普通用户来说,如何突破这些反爬虫机制呢?本文将为你提供一些实用的技巧和建…

《Cesium 进阶知识点》- el-select 列表打开后,点击Cesium.Viewer场景无法自动关闭

前提 el-select属性 popper-append-to-body 必须 为 false。这样初始化的列表 el-select-dropdown 才在 el-select下;目前测试,仅对 Cesium.Viewer 生成的 canvas 点击时列表无法自动关闭;使用原生 canvas 和 echarts,点击其场景…

【uniapp】仿微信支付界面

效果图 完整代码 <template><view class="my-pay-page"><view :style=

opencv python 环境安装问题

问题描述&#xff1a; 在centos上使用python的某个库&#xff0c;有用到opencv&#xff0c;但在import时报以下错误&#xff1a; ImportError: libGL.so.1: cannot open shared object file: No such file or directory 若是系统可以连接外网&#xff0c;则只需一条命令&…

kubeadm方式部署单节点kubernetes环境

------实验所需机器 master&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&#xff09; 20.0.0.101 docker、kubeadm、kubelet、kubectl、flannel node01&#xff08;2C/2G&#xff09; 20.0.0.102 docker、kubeadm、kubelet、kubectl、flannel node02&#xff…

基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(二)板卡总体设计

2.2 板卡总体设计 本章开发了一款基于 AD7193RJ45 的多类型传感信号同步调理板卡&#xff0c;如图 2.4 所 示&#xff0c;负责将传感器传来的模拟电信号转化为数字信号&#xff0c;以供数据采集系统采集&#xff0c;实现了 单通道自由切换传感信号类型与同步采集多类型传…

excel巧用拼接函数CONCAT输出JSON、SQL字符串

一、前言 工作中有时候需要用Excel对数据进行组装&#xff0c;需要输出JSON或者SQL语句&#xff0c;然后通过脚本或Java程序完成一些特定功能&#xff0c;总结了一下用到的函数&#xff0c;方便以后使用。这里使用的是WPS软件。 二、输出JSON 例如&#xff1a;需要将几列数据…

【Proteus仿真】【STM32单片机】智能语音家居陪护机器人

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用OLED显示模块、红外传感器、蜂鸣器、DS18B20温度传感器&#xff0c;风扇LED、语音识别模块等。 主要功能&#xff1a; 系统运行后&#xff0c;…

asp.net古代服饰系统VS开发sqlserver数据库web结构c#编程包含购物答题功能点

一、源码特点 asp.net 古代服饰系统 是一套完善的web设计管理系统(含购物 答题)&#xff0c;系统采用mvc模式&#xff08;BLLDALENTITY&#xff09;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境 为vs2010&#xff0c;数据库为sqlserver…

华为数通方向HCIP-DataCom H12-831题库(多选题:81-100)

第81题 经典的网络转发方式是基于路由表转发。OpenFlow交换机的转发方式是基于流表转发。对于这两种转发方式,以下说法正确的有哪些选项? A、流表的匹配方式是同时匹配流量的MAC地址和IP地址。 B、路由表的匹配方式是匹配拥有最长掩码的目的网段路由 C、流表是变长的。一台网…

双十一购物狂欢节准备好买什么了吗?双十一这些好物不能错过

双十一是电商节&#xff0c;各大电商平台都会推出各种促销活动&#xff0c;吸引消费者抢购商品。在这个特别的时刻&#xff0c;许多人都迫不及待地开始筹备自己的购物清单&#xff0c;想要趁着这个机会购买自己心仪的商品。那么&#xff0c;在这个双十一购物狂欢节&#xff0c;…

MATLAB中polyval函数用法

目录 语法 说明 示例 计算几个点处的多项式值 对四次多项式求积分 具有误差估计值的线性回归 使用中心化和缩放改善数值属性 polyval函数的功能是多项式计算。 语法 y polyval(p,x) [y,delta] polyval(p,x,S) y polyval(p,x,[],mu) [y,delta] polyval(p,x,S,mu) …

招商平台小程序开发制作方案

招商平台小程序旨在为企业提供一个便捷、高效的招商信息发布和合作伙伴寻找的平台。通过整合企业资源&#xff0c;打造一个集信息发布、信息筛选、在线沟通、合作洽谈等功能于一体的综合性招商服务平台。 一、招商平台小程序的用户需求 1. 企业用户&#xff1a;需要一个便捷的…

华为升腾C92安装黑群晖

华为升腾C92安装黑群晖 升腾C92&#xff1a;几年前完小校配置了一批班班通&#xff0c;现在基本已退出历史舞台&#xff0c;这样一批小电脑闲置吃灰也挺可惜的&#xff0c;总想再利用起来。&#xff08;如果手头没有的话&#xff0c;某宝上面二手货大约250元&#xff09; CPU类…

什么是React Router?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

《从零开始大模型开发与微调 :基于PyTorch与ChatGLM》简介

内 容 简 介 大模型是深度学习自然语言处理皇冠上的一颗明珠&#xff0c;也是当前AI和NLP研究与产业中最重要的方向之一。本书使用PyTorch 2.0作为学习大模型的基本框架&#xff0c;以ChatGLM为例详细讲解大模型的基本理论、算法、程序实现、应用实战以及微调技术&#xff0c;…

Linux - 进程状态 - Linux 当中的进程状态是如何维护的?

进程状态 一个进程在 系统当中有很多的状态&#xff0c;比如&#xff1a;一个进程正在被cpu执行&#xff0c;那这个进程就是一个 r 状态&#xff1b;一个进程已经准备好了&#xff0c;但是其中的运行这个进程需要的资源没有准备好&#xff0c;那么这个进程一人不能运行。 比如…

【2021集创赛】平头哥杯三等奖:智能头盔设计

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 杯赛题目&#xff1a;基于平头哥无线智能开发板的创新应用项目设计 参赛组别&#xff1a;A组、B组 赛题内容&#xff1a; 本次大赛将结合玄铁开源E902处理器以及内含玄铁803处理器的TXW830…