容器的基本操作

news2024/10/5 14:01:30

docker中的容器就是一个轻量级的虚拟机,是镜像运行起来的一个状态,本文就先来看看容器的基本操作。

查看容器

查看容器

启动docker后,使用docker ps命令可以查看当前正在运行的容器:

在这里插入图片描述

查看所有容器

上面这条命令是查看当前正在运行的容器,如果需要查看所有容器,则可以通过docker ps -a命令查看:

在这里插入图片描述

在查看容器时,涉及到几个查看参数,含义分别如下:

  1. CONTAINER ID

    CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数,在不会混淆的情况下可以只采用id的前几位进行标识一个容器。

  2. IMAGE

    IMAGE表示创建容器时使用的镜像。

  3. COMMAND

    COMMAND表示容器最后运行的命令。

  4. CREATED

    创建容器的时间。

  5. STATUS

    容器的状态,这里可能显示一个容器启动时间,也能显示容器关闭时间。具体显示那个要看容器当前的状态。

  6. PORTS

    容器对外开放的端口。

  7. NAMES

    容器的名字,如果不设置,会有一个默认的名字。

查看最新创建的容器

使用docker ps -l可以查看最近创建的容器,如下:

在这里插入图片描述

查看最新创建的n个容器

可以使用docker ps -n=XXX来查看最新创建的n个容器,如下:

在这里插入图片描述

创建容器

创建容器整体上来说有两种不同的方式,可以先创建,再启动,也可以连创建带启动一步到位,无论是那种方式,流程都是相似的,当执行一个创建命令之后,docker首先会去本地路径下查找是否有相应的镜像,如果没有,就去docker hub上搜索,如果搜索到了,则下载下来,然后利用该镜像创建一个容器并启动。容器的文件系统是在只读的镜像文件上添加一层可读写的文件层,这样可以使在不改变镜像的情况下,只记录改变的数据。下面对这两种方式分别予以介绍。

容器创建

开发者可以首先使用docker create命令创建一个容器,这个时候创建出来的容器是处于停止状态,没有运行,例如要创建一个nginx容器,创建命令如下:

docker create nginx

创建成功后,可以查看容器是否创建成功:

在这里插入图片描述

此时创建的容器并未运行,处于停止状态,容器的name是随机生成的,开发者也可以在创建容器时指定name,如下:

docker create --name=nginx nginx

运行结果如下:

在这里插入图片描述

此时的name属性就不是随机生成的,而是用户指定的name。

这种方式只是单纯的创建了一个用户,并未启动。

容器创建+启动

如果开发者需要既创建又启动容器,则可以使用docker run命令。docker run命令又可以启动两种不同模式的容器:后台型容器和交互型容器,顾名思义,后台型容器就是一个在后台运行的容器,默默的在后台执行计算就行了,不需要和开发者进行交互,而交互型容器则需要接收开发者的输入进行处理给出反馈。对于开发者而言,大部分情况下创建的都是后台型容器,不过在很多时候,即使是后台型容器也不可避免的需要进行交互,下面分别来看。

后台型容器

后台型容器以nginx为例,一般nginx在后台运行即可:

docker run --name nginx1 -d -p 8080:80 nginx

–name含义和上文一样,表示创建的容器的名字,-d表示容器在后台运行,-p表示将容器的80端口映射到宿主机的8080端口,创建过程如下图:

在这里插入图片描述

首先依然会去本地检查,本地没有相应的容器,则会去Docker Hub上查找,查找到了下载并运行,并且生成了一个容器id。运行成功后,在浏览器中输入http://localhost:8080就能看到Nginx的默认页面了,如下:

在这里插入图片描述

这是一个后台型容器的基本创建方式。

交互型容器

也可以创建交互型容器,例如创建一个ubuntu容器,开发者可能需要在ubuntu上面输入命令执行相关操作,交互型容器创建方式如下:

docker run --name ubuntu -it ubuntu /bin/bash

参数含义都和上文一致,除了-it,-it参数,i表示开发容器的标准输入(STDIN),t则表示告诉docker,为容器创建一个命令行终端。执行结果如下:

在这里插入图片描述

该命令执行完后,会打开一个输入终端,读者就可以在这个终端里愉快的操作ubuntu了。
想要退出该终端,只需要输入exit命令即可。

容器启动

启动

如果开发者使用了docker run命令创建了容器,则创建完成后容器就已经启动了,如果使用了docker create命令创建了容器,则需要再执行docker start命令来启动容器,使用docker start命令结合容器id或者容器name可以启动一个容器,如下:

在这里插入图片描述

docker start启动的是一个已经存在的容器,要使用该命令启动一个容器,必须要先知道容器的id或者name,开发者可以通过这两个属性启动一个容器(案例中,nginx是通过name启动,而ubuntu则是通过id启动)。一般来说,第一次可以使用docker run启动一个容器,以后直接使用docker start即可。

重启

容器在运行过程中,会不可避免的出问题,出了问题时,需要能够自动重启,在容器启动时使用–restart参数可以实现这一需求。根据docker官网的解释,docker的重启策略可以分为4种,如下:

在这里插入图片描述

四种的含义分别如下:

  1. no表示不自动重启容器,默认即此。
  2. on:failure:[max-retries]表示在退出状态为非0时才会重启(非正常退出),有一个可选择参数:最大重启次数,可以设置最大重启次数,重启次数达到上限后就会放弃重启。
  3. always表示始终重启容器,当docker守护进程启动时,也会无论容器当时的状态为何,都会尝试重启容器。
  4. ubless-stopped表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它。

容器停止

通过docker stop命令可以终止一个容器,如下:

在这里插入图片描述

可以通过name或者id终止一个容器。

容器删除

单个删除

容器停止后还依然存在,如果需要,还可以通过docker start命令再次重启一个容器,如果不需要一个容器,则可以通过docker rm命令删除一个容器。删除容器时,只能删除已经停止运行的容器,不能删除正在运行的容器。如下:

在这里插入图片描述

可以通过name或者id删除一个容器。如果非要删除一个正在运行的容器,可以通过-f参数实现,如下:

在这里插入图片描述

批量删除

容器也可以批量删除,命令如下:

docker rm $(docker ps -a -q)

docker ps -a -q会列出所有容器的id,供rm命令删除。

如下命令也支持删除已退出的孤立的容器:

docker container prune

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/933295.html

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

相关文章

Hadoop Hdfs基本命令

0目录 1.hadoop安装问题处理 2.hdfs基本命令 3.上传/下载文件和文件夹 1.hadoop安装问题处理 如果安装有进程无法启动,如下图 重新检查6个配置文件 Core-site.xml \ hdfs-site.xml \ hadoop-env.sh \ yarn-site.xml \ workers \ yarn-site.xml 来到hadoop313目录…

8/26 回溯法 周总结 记录个人的想法

DAY1 77. 组合 这道题是经典的回溯题, 递归函数参数和返回值显而易见 终止条件是path.size()k 递归逻辑,需要理解每次调用回溯的startIndex的含义,图解: DAY2 216. 组合总和 III:这道题与77题作类比: 77&#xff1…

剪绳子c、c++实现

给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长的 m 段&#xff08; m 、 n 都是整数&#xff0c; n > 1 并且 m > 1 &#xff0c; m < n &#xff09;&#xff0c;每段绳子的长度记为 k[1],...,k[m] 。请问 k[1]*k[2]*...*k[m] 可能的最大乘积是多少&#x…

【MySQL系列】表的内连接和外连接学习

「前言」文章内容大致是对MySQL表的内连接和外连接。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、内连接二、外连接2.1 左外连接2.2 右外连接 一、内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;前面篇章学习的…

ctfshow-web-红包题第六弹

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先跑一下字典&#xff0c;这里用的dirmap,可以看到有一个web.zip 下载下来之后发现是一个网站备份&#xff0c;备份的是check.php.bak 然后接着看&#xff0c;可以看到这里不太可能是sql注入&#xff0c;有…

650V 1200V碳化硅二极管MOS管规格书参数,6A 8A 10A 15A 20A 封装TO220低VF电压 低内阻特性

650V碳化硅二极管6A 8A 15A提供样品 650V 40毫欧超结COOL MOS提供样品 650V 超结COOL MOS资料 国产替代 650V 1200V碳化硅二极管技术资料

Windows 10 文件夹自定义分组

通过配置desktop.ini文件可实现文件夹简单分组&#xff0c;此方法需配置每一个文件夹。 效果如下 1、文件夹设置取消隐藏系统文件 2、文件配置&#xff0c;以test文件夹为例。进入test文件夹&#xff0c;新建txt文件重命名 desktop.ini 注意是否开启显示文件后缀名否则修改后还…

手把手教你从0开始部署Kubernetes(K8s 1.28.x)---超详细

目录 一、基础环境配置&#xff08;所有主机均要配置&#xff09; 1、配置IP地址和主机名、hosts解析 2、关闭防火墙、禁用SELinux 3、安装常用软件 4、配置时间同步 5、禁用Swap分区 6、修改linux的内核参数 7、配置ipvs功能 二、容器环境操作 1、定制软件源 2、安…

接口测试时遇到接口加密了该如何处理?

对明文编码生成信息摘要&#xff0c;以防止被篡改。比如MD5使用的是Hash算法&#xff0c;无论多长的输入&#xff0c;MD5都会输出长度为128bits的一个串。摘要算法不要秘钥&#xff0c;客户端和服务端采用相同的摘要算法即可针对同一段明文获取一致的密文。 对称加密 对称加密…

不同子网络中的通信过程

从输入www.baidu.com经历了什么 一、DNS&#xff08;网址->IP&#xff09; 二、ARP&#xff08;IP->MAC&#xff09; A->B&#xff1a;有数据发送&#xff0c;数据封装ip之后发现没有主机B的mac地址。然后ARP在本网段广播&#xff1a;检查目标地址和源地址是否在同一…

多头自注意力机制的代码实现

文章目录 1、自注意力机制2、多头注意力机制 transformer的整体结构&#xff1a; 1、自注意力机制 自注意力机制如下&#xff1a; 计算过程&#xff1a; 代码如下&#xff1a; class ScaledDotProductAttention(nn.Module):def __init__(self, embed_dim, key_size, value_…

Pandas数据分析教程-描述性统计量

pandas基础介绍-命令模版 描述性统计量pandas 统计函数相关与协方差唯一值&#xff0c;频次统计,成员关系1. Series.unique()2. Series/DataFrame/array.value_counts()3. Series.isin()4. get_indexer() 索引对应转换 本文介绍pandas中一些常用的描述性统计量相关知识&#xf…

【考研数学】线性代数第四章 —— 线性方程组(2,线性方程组的通解 | 理论延伸)

文章目录 引言四、线性方程组的通解4.1 齐次线性方程组4.2 非齐次线性方程组 五、方程组解的理论延伸 引言 承接前文&#xff0c;继续学习线性方程组的内容&#xff0c;从方程组的通解开始。 四、线性方程组的通解 4.1 齐次线性方程组 &#xff08;1&#xff09;基础解系 —…

从“芯”出发,国产IDE来了?网友:VS Code 姊妹款?

点击上方“程序猿技术大咖”&#xff0c;关注并选择“设为星标” 回复“加群”获取入群讨论资格&#xff01; 昨天日本核污水排放刷屏&#xff0c;今天却被一条github issues 霸屏&#xff1a;Vscode&#xff0c;你们是否与中国合作过&#xff1f;&#xff08;Vscode, have you…

22.查找,线性表的查找

目录 一. 查找的基本概念 二. 线性表的查找 &#xff08;1&#xff09;顺序查找&#xff08;线性查找) &#xff08;2&#xff09;折半查找&#xff08;二分或对分查找&#xff09; &#xff08;3&#xff09;分块查找 一. 查找的基本概念 查找表是由同一类型的数据元素(…

深度学习11:Transformer

目录 什么是 Transformer&#xff1f; Encoder Decoder Attention Self-Attention Context-Attention 什么是 Transformer&#xff08;微软研究院笨笨&#xff09; RNN和Transformer区别 Universal Transformer和Transformer 区别 什么是 Transformer&#xff1f; ​ …

python下timer定时器常用的两种实现方法

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说&#xff0c;直接开搞&#xff0c;如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 方法一&#xff0c;使用线程中现成的&#xff1a; 这种一般比较常用&#xff0c;特别是在线程中的使用方法&#xff0c;下…

python3GUI--PyQt5打包心得(详细图文演示)

文章目录 一&#xff0e;前言二&#xff0e;准备工作&介绍1.准备2.介绍1.pyinstaller2.pipenv 三&#xff0e;项目打包1.准备2.打包1.打包参数2.虚拟环境 三&#xff0e;总结 一&#xff0e;前言 有朋友私信问我&#xff0c;如何把项目打包和如何减小打包后的文件体积。笔…

HarmonyOS应用开发者高级认证练习题

系列文章目录 HarmonyOS应用开发者基础认证练习题 HarmonyOS应用开发者高级认证练习题 文章目录 系列文章目录前言一、判断二、单选三、多选 前言 本文所有内容来源于个人进行HarmonyOS应用开发者系列认证的学习过程中所做过的练习题&#xff0c;所有答案均是个人作答&#x…

深度学习4. 循环神经网络 – Recurrent Neural Network | RNN

目录 循环神经网络 – Recurrent Neural Network | RNN 为什么需要 RNN &#xff1f;独特价值是什么&#xff1f; RNN 的基本原理 RNN 的优化算法 RNN 到 LSTM – 长短期记忆网络 从 LSTM 到 GRU RNN 的应用和使用场景 总结 百度百科维基百科 循环神经网络 – Recurre…