Docker 容器操作

news/2024/5/5 16:04:43

容器创建   

就是将镜像加载到容器的过程。
新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

格式:docker create [选项] 镜像
常用选项:
-i:让容器开启标准输入
-t:让 Docker 分配一个伪终端 tty
-it :合起来实现和容器交互的作用,运行一个交互式会话 shell 

docker create -it nginx:latest /bin/bash

查看容器的运行状态
docker   ps   -a                   -a 选项可以显示所有的容器

                                           不加-a只显示正在运行的容器

启动容器
格式:docker start 容器的ID/名称
docker start  dd00c7c0711e
docker ps -a

创建并启动容器
可以直接执行 docker run 命令, 等同于先执行 docker create 命令,再执行 docker start 命令。

注意:容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行, 命令结束容器退出。

  • docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的依据
  • 如docker容器中 pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉

 用 docker run 创建容器时, Docker 在后台的标准运行过程

  1. 检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;
  2. 利用镜像创建并启动一个容器;
  3. 分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
  4. 从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;
  5. 分配一个地址池中的 IP 地址给容器;
  6. 执行用户指定的应用程序,执行完毕后容器被终止运行。

docker run命令流程图: 

docker在客户端服务端流程:

docker run centos:7 /usr/bin/bash -c ls /
docker ps -a               会发现创建了一个新容器并启动执行一条 shell 命令,之后就停止了 

在后台持续运行 docker run 创建的容器
需要在 docker run 命令之后添加   -d   选项

让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。

docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello;done"

docker ps -a                    可以看出容器始终处于 UP,运行状态

创建容器并持续运行容器

docker run -itd --name centos7 centos:7 /bin/bash  

终止容器运行
格式:docker stop 容器的ID/名称

容器的进入
使用 docker exec 命令进入运行着的容器。

格式:docker exec -it  容器ID/名称  /bin/bash
-i 选项表示让容器的输入保持打开;
-t 选项表示让 Docker 分配一个伪终端。
 

docker start  ..  进入容器前,确保容器正在运行

exit                退出容器后,容器仍在运行 

docker run -it centos:7 bash    

不加 -d 选项会创建容器后直接进入容器,但是退出容器,容器也会停止 

 

docker 容器生命周期

docker 容器 七个状态

  1. created:已创建  还未运行的容器
  2. running:正在运行中的容器
  3. restarting:容器正在重启中
  4. removeing:容器正在迁移中
  5. paused:已暂停状态的容器
  6. exited:停止状态的容器
  7. dead:   死亡 主要是操作系统出现异常 或 断点关机等有可能引发dead状态,但是 不很常见

 怎么把宿主机的文件传入到容器内部:

cp 原文件路径目标文件路径

docker cp lisi.txt centos7:/opt/

 

 从容器复制文件到主机:

 

容器的导出与导入

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。

用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出

导出格式:docker export 容器ID/名称 > 文件名

导入格式:cat 文件名 | docker import – 镜像名称:标签


                 

cat centos7.tar | docker import - centos7:test          导入后会生成镜像,但不会创建容器

删除容器

格式:docker rm [-f] 容器ID/名称
docker stop e1988d835e97
docker rm     e1988d835e97           #删除已经终止状态的容器

docker rm -f     e1988d835e97      #强制删除正在运行的容器

docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash            #批量停止容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker stop

docker ps -a | awk 'NR>=2{print "docker rm "$1}' | bash                #批量删除所有容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker rm

docker images | awk 'NR>=2{print "docker rmi "$3}'| bash            #批量删除镜像
docker images | grep none | awk '{print $3}' | xargs docker rmi        #删除none镜像

docker rm $(docker ps -a -q)        #批量清理后台停止的容器

命令总结


http://www.mrgr.cn/p/80864044

相关文章

LFI to RCE [NewStarCtf]Include

记录一个没见过的RCE类型题目。先看源码:点击查看代码 <?phperror_reporting(0);if(isset($_GET[file])) {$file = $_GET[file];if(preg_match(/flag|log|session|filter|input|data/i, $file)) {die(hacker!);}include($file.".php");# Something in phpinfo.p…

C语言扫雷游戏完整实现(下)

文章目录 前言一、排雷函数菜单二、排雷函数菜单的实现三、拓展棋盘功能四、源码1. test.c源文件2. game.h头文件3. game.c源文件 总结 前言 C语言实现扫雷游戏的排雷菜单&#xff0c;以及功能的实现&#xff0c;拓展棋盘功能&#xff0c;以及源码等。 上半部分的链接地址: C语…

echart 常用属性

echart 常用属性 基础属性 title 左上角标题 legend 每一项的列表 xAxis: x轴上的数据 yAxis: y轴上的数据提示框 tooltip: {trigger: axis},demo地址:https://echarts.apache.org/v4/examples/zh/editor.html?c=line-stack 文字转动 斜着摆放 axisLabel.rotate: 30滚动条 da…

VScode远程连接虚拟机提示: 无法建立连接:XHR failed.问题解决方案

一问题描述 在vscode下载插件Remote-SSH远程连接虚拟机时提示无法建立连接 二.最大嫌疑原因&#xff1a; 我也是在网上找了许久&#xff0c;发现就是网络原因&#xff0c;具体不知&#xff0c;明明访问别的网页没问题&#xff0c;就是连不上&#xff0c;然后发现下载vscode的…

.Net添加了引用,仍然提示找不到命名空间

如图&#xff0c;MyStudy控制台程序引用了一个C#类库MyClassLibrary 代码里也能敲出来using MyClassLibrary&#xff0c;但是build时始终提示找不到命名空间MyClassLibrary 我检查了MyClassLibrary的Assembly&#xff0c;命名空间名称无误 又检查了MyStudy里的引用信息&#x…

three.js实现相机碰撞,相机不穿墙壁、物体

大家好,本文实现了相机碰撞检测,使相机不穿墙壁、物体,并给出了思路和代码,感谢大家~大家好,本文实现了相机碰撞检测,使相机不穿墙壁、物体,并给出了思路和代码,感谢大家~ 关键词:数字孪生、three.js、Web3D、WebGL、相机碰撞、游戏相机 我正在承接Web3D数字孪生项目,…

Windows服务器等保审核安全设置

1.开启账户锁定策略 进入Windows服务器,快捷键“WIN+R”打开运行窗口。输入“gpedit.msc”并点击确定,依次点击“计算机配置”>“Windows设置”>“安全设置”>“账户策略”>“账户锁定策略 示例: *多次登录锁定,可以设置次数多点 2、密码长度最小值建议设置为8…

20-vue组件传参(父传子,子传父)

父传子: 父组件向子组件传入一个参数,可以通过 props配置项,让组件接收外部传过来的数据 1)传递数据 这里需要注意,通过 age = "18"的方式,传递进去的数据是字符类型的,通过动态绑定 :age = "26" 的方式,传递进去的数据是整型类型<!--这里需要注…

状态模式和策略模式对比

状态模式和策略模式都是行为型设计模式&#xff0c;它们的主要目标都是将变化的行为封装起来&#xff0c;使得程序更加灵活和可维护。之所以将状态模式和策略模式进行比较&#xff0c;主要是因为两个设计模式的类图相似度较高。但是&#xff0c;从状态模式和策略模式的应用场景…

XV6源码阅读——进程地址空间

文章目录 前言页表实际情况 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招。打算尝试6.S081&#xff0c;将它的Lab逐一实现&#xff0c;并记录期间心酸历程。 代码下载 官方网站&#xff1a;6.S081官方网站 页表 每个进程都有一个单独的页表&#xff0c;当xv6在进程之…

谁动了我的数据?如何防止数据偷偷溜走?

在数字化时代,数据成为了企业核心资产的重要组成部分。然而,随着数据量的不断增长和传输方式的多样化,数据泄露的风险也随之增加。那么,企业该如何保护自己的数据,确保数据安全呢?这里就为大家揭秘有效的数据监控策略。实施实时监控是保护数据的关键。通过安装专业的数据…

HTML+CSS热词设计

HTML+CSS的热词设计效果代码: `<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>a {display: block;width: 200px;h…

【漏洞复现】云时空社会化商业ERP系统slogin SQL注入漏洞

漏洞描述&#xff1a; 云时空社会化商业ERP系统slogin存在SQL注入漏洞&#xff0c;攻击者可以通过此漏洞获取数据库敏感信息。 搜索语法: Fofa-Query: app"云时空社会化商业ERP系统" 漏洞详情&#xff1a; 1.云时空社会化商业ERP系统。 2.漏洞POC&#xff1a; …

前端H5动态背景登录页面(下)

最近正好有点儿时间&#xff0c;把之前没整理完的前端动态背景登录页面给整理一下&#xff01;这是之前的连接前端H5动态背景登录页面&#xff08;上&#xff09;&#xff0c;这主要是两个登陆页面&#xff0c;一个彩色气泡&#xff0c;一个动态云朵&#xff0c;感兴趣的可以点…

使用Docker搭建Redis主从集群

文章目录 ☃️前言☃️搭建❄️❄️架构❄️❄️实例说明❄️❄️搭建第一个服务器上的两个实例❄️❄️搭建第二个服务器上的一个实例 ☃️开启主从❄️❄️改配置❄️❄️重启从节点 ☃️验证 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 …

探索ChatGPT在提高人脸识别与软性生物识准确性的表现与可解释性

概述 从GPT-1到GPT-3&#xff0c;OpenAI的模型不断进步&#xff0c;推动了自然语言处理技术的发展。这些模型在处理语言任务方面展现出了强大的能力&#xff0c;包括文本生成、翻译、问答等。 然而&#xff0c;当涉及到面部识别和生物特征估计等任务时&#xff0c;这些基于文…

Mac 硬盘空间告急,你可以试试这几款免费清理工具 Mac第三方磁盘管理工具 MacBook磁盘工具下载 cleanmymac和appcleaner哪个好

在选购 Mac 时&#xff0c;昂贵的增加自带存储空间成本&#xff0c;往往是让很多购买用户肉痛的选择&#xff0c;因此不少用户在预算有限的情况下&#xff0c;选择配置更倾向于选择更大的运行内存而非存储空间。 这也让 macOS 存储空间捉襟见肘成为不少 Mac 用户头疼的问题&am…

【STM32F4】STM32CUMX相关环境配置

一、环境配置 我们需要以下两个软件 &#xff08;一&#xff09;keil5 最正统&#xff0c;最经典的嵌入式MCU开发环境。 该环境的配置可以看看之前的文章 所需文件如下&#xff1a; 当时配置的是STC8H的环境&#xff0c;现在基于此&#xff0c;重新给STM32配置环境。能让STC…

重庆软航H5 PDF签章产品经nginx代理之后在浏览器中在线打开PDF盖章时提示:签章失败:网络错误 413 Request Entity Too Large的问题解决办法

问题现象:问题描述:在系统中集成了软航H5 PDF签章产品,软航H5 PDF签章产品的对应服务是通过nginx代理的,在奇安信浏览器中在线打开PDF点击产品的工具栏上的盖章按钮:选定印章之后,在PDF文档上选定盖章位置之后,提示:签章失败:网络错误。 最近在做这个软航H5 PDF电子签…

Java之oop(面向对象编程)

目录面向对象编程(OOP)一、面向过程与面向对象二、Java基本元素:类和对象三、对象的创建与使用1. 对象的使用2.内存解析3.匿名对象四、类的成员1. 属性1.1概念1.2分类2. 方法2.1 声明格式2.2 方法的重载2.3 可变形参的方法2.4 方法参数的值传递机制2.5 递归方法3. 构造器4.…