Docker--Docker Container(容器) 之 操作实例

容器的基本操作

容器的操作步骤其实很简单,根据拉取的镜像,进行启动,后可以查看容器,不用时停止容器,删除容器

下面简单演示操作步骤

1.创建并运行容器

例如,创建一个名为"my-nginx"的交互式Nginx容器,并将容器端口80映射到主机端口8080,可以使用以下命令:

docker run -it --name my-nginx -p 8080:80 nginx

2.查看容器

  • docker ps:列出当前正在运行的容器。
  • docker ps -a:列出所有容器,包括已经停止的。

按照我们在linux执行的命令,通常是使用ls来进行查看对应的目录,而容器其实也是可以这样操作的:
在这里插入图片描述

docker container ls 等价于 docker ps

只不过是我们习惯用docker ps 的命令了;

3.停止容器

使用docker stop命令可以停止一个正在运行的容器。例如,停止名为"my-nginx"的容器:

docker stop my-nginx

另外,docker kill命令也可以用来停止容器,但它会立即发送SIGKILL信号给容器,可能会导致数据丢失或状态不一致,因此通常不建议使用。

对于容器ID,能直接通过ID前三位直接进行操作:
在这里插入图片描述

4.删除容器

使用docker rm命令可以删除一个已经停止的容器。例如,删除名为"my-nginx"的容器:

docker rm my-nginx

如果需要一次性删除所有已经停止的容器,可以使用以下命令:

docker rm $(docker ps -a -q)

容器的批量处理技巧

docker ps + 选项

  • -a 所有容器
  • -f 根据给定条件进行过滤
  • -q 静默获取容器id

注:docker ps 等价于 docker container ls

例如:根据名称过滤得到一个容器编号:
在这里插入图片描述

根据状态信息获取对应的容器:
在这里插入图片描述
获取停止运行状态的容器:
在这里插入图片描述
获取容器的全部id:
在这里插入图片描述

容器的运行方式

attached模式

在这种模式下,容器在前台运行,并且容器的日志会实时地展现到宿主机的命令行窗口中。

  • 定义:attached模式是指Docker容器在前台运行,并且与宿主机的命令行窗口保持连接的状态。
  • 特点:
  1. 实时日志输出:容器的日志会实时地输出到宿主机的命令行窗口中,方便用户进行实时监控和调试。
  2. 交互性强:用户可以在宿主机的命令行窗口中直接对容器进行操作,如输入命令、查看文件等。
  3. 占用端口:attached模式会占用宿主机的命令行窗口,直到用户手动停止容器或关闭窗口。

使用场景
attached模式更适用于容器和程序的调试阶段。在调试过程中,开发人员需要实时监控容器的日志输出,以便及时发现和解决问题。同时,开发人员还需要在容器中执行一些命令来查看文件、修改配置等,attached模式提供了这样的交互环境。

例子:
在启动Docker容器时,如果不加-d或–detach参数,则容器会以attached模式运行。例如,使用以下命令启动一个Nginx容器:

docker container run -p 80:80 nginx

在这里插入图片描述

detached模式

detach模式是指Docker容器在后台运行,并且与当前的命令行窗口或终端分离的状态。

特点:

  • 后台运行:容器在detach模式下会在后台运行,不会占用当前的命令行窗口或终端。
  • 日志输出:虽然容器在后台运行,但其日志仍然会输出到Docker的日志系统中,可以通过docker logs命令查看。
  • 资源占用:detach模式下的容器会占用系统资源,如CPU、内存和磁盘等,但不会影响当前命令行窗口或终端的使用。

使用场景
detach模式更适用于需要长时间运行的服务或应用程序,如Web服务器、数据库等。这些服务或应用程序通常不需要频繁的用户交互,因此可以在后台运行,并释放当前的命令行窗口或终端资源。

例如
在启动Docker容器时,使用-d或–detach参数可以使容器以detach模式运行。例如,使用以下命令启动一个Nginx容器:

docker run -p 8080:80 --name mynginx3 -d nginx:1.23.4

在这里插入图片描述

根据命令查看日志信息:

docker logs 8e7

在这里插入图片描述

可以将其转化为attach模式,一旦访问服务器地址就有日志信息:

docker attach 8e7

在这里插入图片描述

interative模式

interactive模式是指Docker容器在运行时,用户可以通过命令行与容器内部进行实时交互的状态。

特点:

  • 实时交互:用户可以在命令行中直接输入命令,并实时查看容器的响应和输出。
  • 灵活性强:用户可以根据需要随时调整容器的配置、查看文件、安装软件等。
  • 适用于开发和调试:interactive模式特别适用于需要频繁与容器内部进行交互的场景,如开发、测试和调试等。

在启动Docker容器时,使用-it参数可以使容器以interactive模式运行。其中,-i表示保持标准输入流打开,-t表示分配一个伪终端。例如,使用以下命令启动一个基于Ubuntu镜像的容器,并进入其内部的bash命令行环境:

docker run -it ubuntu bash

这条命令会启动一个基于Ubuntu镜像的容器,并为用户分配一个伪终端,用户可以在其中执行Linux命令,与容器进行交互。

容器自动重启

容器可以通过配置选项参数来让其自动重启:
docker run --restart=no [容器名] :默认值不自动重启
docker run --restart=always [容器名] :always 容器退出时总是重启
docker run --restart=on-failure:3 [容器名] : on-failure 若容器的退出状态非 0,则docker 自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃;

下面演示自动重启的例子:
先运行一个容器,并将docker run --restart=always [容器名] :always 选项加上:

docker run --name mynginx5 -d -p 8080:80 --restart always nginx:1.23.4

此时,容器在后台运行:
在这里插入图片描述
容器被kill之后仍然在运行:
在这里插入图片描述
最后释放空间:

docker stop mynginx5
docker rm mynginx5

设置容器的环境变量

在运行容器时,可以使用docker run命令的-e参数来设置环境变量。这种方式允许在创建和启动容器时动态地传递环境变量

下面来演示一下:

启动一个 nginx 容器,配置环境变量,TEST=1:

docker run--name mynginx5 -d -p 8080:80 -e TEST=1 nginx:1.23.4

进入容器并查看:

root@VM-8-12-ubuntu:~# docker exec -it mynginx5 bash 
root@34b076bc51da:/# env 丨 grep TEST 
TEST=1
root@34b076bc51da:/# exit
exit

释放空间:

root@VM-8-12-ubuntu:~# docker stop mynginx5 
mynginx5
root@VM-8-12-ubuntu:~# docker rm mynginx5
mynginx5

注意:

  • 环境变量的命名:环境变量的命名应遵循一定的规范,避免使用与操作系统或应用程序保留的环境变量名相冲突的名称。
  • 环境变量的值:环境变量的值应避免包含敏感信息,如密码、密钥等。如果必须包含敏感信息,应确保这些信息的安全存储和传输。
  • 环境变量的作用范围:设置的环境变量只在容器内部生效,不会影响到宿主机或其他容器。如果需要在多个容器之间共享环境变量,可以考虑使用Docker网络、Docker Configs或Docker Secrets等功能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

USB射频微波功率计的功能与优势-盛铂科技

USB射频功率计是一种用于测量射频信号(RF)功率的仪器,它通过USB接口与计算机或其他设备连接,以便于进行数据采集、处理和显示。 主要功能 功率测量:能够测量射频信号的功率,通常以毫瓦(mW&…

GDPU 数据库原理 期末复习

文章目录 👨‍🏫 必看:期末考点🍂 学习通🍁 章节小测一 绪论🍓 选择题 🍁 章节小测二 关系数据库🍓 简答题1. 写关系代数2. 写关系代数 🍓 选择题 🍁 章节小测…

Springboot:后端接收数组形式参数

1、接收端写法 PermissionAnnotation(permissionName "",isCheckToken true)PostMapping("/batchDeleteByIds")public ReturnBean webPageSelf( NotNull(message "请选择要删除的单据!") Long[] ids) {for (Long string : ids) {l…

系统设计——大文件传输方案设计

摘要 大文件传输是指通过网络将体积较大的文件从一个位置发送到另一个位置的过程。这些文件可能包括高清视频、大型数据库、复杂的软件安装包等,它们的大小通常超过几百兆字节(MB)甚至达到几个吉字节(GB)或更大。大文…

国产编辑器EverEdit - 常用资源汇总

1 国产编辑器EverEdit-常用资源汇总 EverEdit是一款国产文本编辑器,历经超过15年的更新和维护,拥有不输业界顶级商业文本编辑器(EmEditor、UltraEdit)的实力,甚至在某些方面的功能更强(当然,各有千秋),开发者对文本编辑…

Linux C/C++编程-获得套接字地址、主机名称和主机信息

【图书推荐】《Linux C与C一线开发实践(第2版)》_linux c与c一线开发实践pdf-CSDN博客《Linux C与C一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com…

爱死机第四季(秘密关卡)4KHDR国语字幕

通过网盘分享的文件:love_death_robot 链接: https://pan.baidu.com/s/1bG3Xtdopenil2O_y93hY_g?pwd8kib 提取码: 8kib

目标检测入门指南:从原理到实践

目录 1. 数据准备与预处理 2. 模型架构设计 2.1 特征提取网络原理 2.2 区域提议网络(RPN)原理 2.3 特征金字塔网络(FPN)原理 2.4 边界框回归原理 2.5 非极大值抑制(NMS)原理 2.6 多尺度训练与测试原理 2.7 损失函数设计原理 3. 损失函数设计 4. 训练策略优化 5. 后…

慧集通iPaaS集成平台低代码培训-基础篇

训练使用素材: 1.数据源: 单号业务日期工厂仓库物料单位数量批次0100012022-5-1210031001030001kg500202304150100012022-5-1210031001030001kg122202304150100012022-5-1210031001030001kg1250202304150100012022-5-1210031001030002kg130202304110100…

框架(Mybatis基础配置)

mybatis的使用步骤 1.引入依赖 <!-- Mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency> <!-- Mysql连接依赖-->…

2、pycharm常用快捷命令和配置【持续更新中】

1、常用快捷命令 Ctrl / 行注释/取消行注释 Ctrl Alt L 代码格式化 Ctrl Alt I 自动缩进 Tab / Shift Tab 缩进、不缩进当前行 Ctrl N 跳转到类 Ctrl 鼠标点击方法 可以跳转到方法所在的类 2、使用pip命令安装request库 命令&#xff1a;pip install requests 安装好了…

常见中间件漏洞复现

1.tomcat 1.1 CVE-2017-12615(put上传) 当在Tomcat的conf&#xff08;配置目录下&#xff09;/web.xml配置文件中添加readonly设置为false时&#xff0c;将导致该漏洞产 ⽣&#xff0c;&#xff08;需要允许put请求&#xff09; , 攻击者可以利⽤PUT方法通过精心构造的数据包…

JavaWeb开发(五)Servlet-ServletContext

1. ServletContext 1.1. ServletContext简介 1.1.1. ServletContext定义 ServletContext即Servlet上下文对象&#xff0c;该对象表示当前的web应用环境信息。 1.1.2. 获取ServletContext对象: &#xff08;1&#xff09;通过ServletConfig的getServletContext()方法可以得到…

【Redis】集群配置(主从复制 哨兵搭建)

文章目录 集群配置主从复制哨兵搭建 集群配置 Redis 集群提供了三种分布式方案&#xff1a; 主从模式&#xff1a;一个主节点和一个或多个从节点&#xff0c;主节点负责写操作&#xff0c;从节点负责读操作&#xff0c;实现读写分离&#xff0c;分担主节点的压力。 哨兵模式…

设计模式の状态策略责任链模式

文章目录 前言一、状态模式二、策略模式三、责任链模式 前言 本篇是关于设计模式中的状态模式、策略模式、以及责任链模式的学习笔记。 一、状态模式 状态模式是一种行为设计模式&#xff0c;核心思想在于&#xff0c;使某个对象在其内部状态改变时&#xff0c;改变该对象的行为…

【设计模式】 基本原则、设计模式分类

设计模式 设计模式是软件工程中的一种通用术语&#xff0c;指的是针对特定问题的经过实践验证的解决方案。设计模式并不是最终的代码实现&#xff0c;而是描述了如何解决某一类问题的思路和方法。 如果熟悉了设计模式&#xff0c;当遇到类似的场景&#xff0c;我们可以快速地…

二、github基础

Github基础 备用github.com网站一、用户界面-Overview&#xff08;概览&#xff09;1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories&#xff08;仓库&#xff09;1 libusb_stm322 savedata3 Fi…

nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益

–https://doi.org/10.1038/s41576-024-00796-w Genomic landscape of cancer in racially and ethnically diverse populations 研究团队和单位 Ulrike Peters–Public Health Sciences Division, Fred Hutchinson Cancer Center Claire E. Thomas–Public Health Scienc…

选择器(结构伪类选择器,伪元素选择器),PxCook软件,盒子模型

结构为类选择器 伪元素选择器 PxCook 盒子模型 (内外边距&#xff0c;边框&#xff09; 内外边距合并&#xff0c;塌陷问题 元素溢出 圆角 阴影: 模糊半径&#xff1a;越大越模糊&#xff0c;也就是越柔和 案例一&#xff1a;产品卡片 <!DOCTYPE html> <html lang&q…

vue2+echarts实现水球+外层动效

实现效果 安装echarts-liquidfill 需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01;需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01;需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01; 安装命令 npm install echarts-liqui…