Docker实战-操作Docker容器实战(一)
导语
在之前的分享中,我们介绍了关于如何去操作Docker镜像,下面我们来看看如何去操作容器。简单来讲,容器是镜像运行的一个实例,与镜像不同的是镜像只能作为一个静态文件进行读取,而容器是可以在运行时进行写入操作的。同时容器中的应用进程是处于一个运行状态的,而在镜像中的应用程序只是一个应用程序的文件。
如果说虚拟机模拟的是一个计算机操作系统,那么容器就相当于一个独立运行新的一个应用,及其必要的运行环境的组合。
下面我们就来详细的介绍有关Docker容器使用相关的内容。

如何创建一个容器?
新建容器
我们可以使用 docker create 命令来创建一个容器,例如
[root@localhost ~]# docker create -it ubuntu:18.04
86244eee4f2a4f06157d32a433e3f4107e242e4b6f69b27396004202e4909b0f
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cb48f5d7103 ubuntu:18.04 "/bin/bash" 3 hours ago Exited (0) 3 hours ago cool_nightingale
需要注意的是使用了docker create 命令创建完成的容器是处于一个静止的状态,我们可以使用docker start命令来启动它。当然docker create命令在使用的过程中还有很多的参数,我们可以在使用的时候通过docker create --help 命令来查看。
启动容器
使用docker start命令来启动一个已经创建好的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cb48f5d7103 ubuntu:18.04 "/bin/bash" 3 hours ago Exited (0) 3 hours ago cool_nightingale
[root@localhost ~]# docker start 5cb48f5d7103
5cb48f5d7103
[root@localhost ~]#
启动之后,我们可以通过docker ps 命令来查看运行中的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5cb48f5d7103 ubuntu:18.04 "/bin/bash" 3 hours ago Up 47 seconds cool_nightingale
[root@localhost ~]#
新建并且启动容器
除了创建容器之后,使用start命令进行启动,还可以直接新建容器并启动。我们可以使用 docker run 命令来完成这个操作,这个命令就是 create 命令和 start命令的整合。如下所示
[root@localhost ~]# docker run ubuntu:18.04 /bin/echo 'hello world'
hello world
[root@localhost ~]#
当然这种操作在运行完成之后,容器并不会保留在正在运行的容器列表中,所以使用docker ps 查看之后内容为空。也就是说是一个临时创建,并没有持续运行。那么我们如何来实现守护运行呢?
守护态运行
在实际操作中,我们更多的时候需要让Docker容器以守护态来运行,因此,我们可以通过添加-d 参数来实现守护态运行。
[root@localhost ~]# docker run -d ubuntu:18.04 /bin/sh -c "while true;do echo hello world;sleep 1;done"
ae370749197f6cbbd694cf874ffe0e35c223584659ac11f018aec973d7b363d0
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae370749197f ubuntu:18.04 "/bin/sh -c 'while t…" 4 seconds ago Up 3 seconds nice_varahamihira
[root@localhost ~]#
查看容器输出
想要获取到容器输出的内容,可以通过 docker logs 命令进行查看。
[root@localhost ~]# docker logs ae370749197f
hello world
hello world
如何停止容器
停止一个容器可以通过 pause/unpause 、stop和prune等命令来操作。
暂停容器
使用docker pause命令来暂停一个正在运行中的容器
[root@localhost ~]# docker pause ae370749197f
ae370749197f
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae370749197f ubuntu:18.04 "/bin/sh -c 'while t…" 3 minutes ago Up 3 minutes (Paused) nice_varahamihira
[root@localhost ~]#
处于暂停状态的容器可以使用 docker unpause 命令来恢复到运行状态
[root@localhost ~]# docker unpause ae370749197f
ae370749197f
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae370749197f ubuntu:18.04 "/bin/sh -c 'while t…" 4 minutes ago Up 4 minutes nice_varahamihira
[root@localhost ~]#
终止容器
使用docker stop命令来终止一个容器运行。
[root@localhost ~]# docker stop ae370749197f
ae370749197f
[root@localhost ~]#
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]#
还可以使用docker stop -t 命令来停止,执行这个命令之后先会等待10秒然后在发送停止容器的命令。
容器停止之后,执行 docker container prune 命令,就会自动清除掉所有的停止状态的容器。
[root@localhost ~]# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
ae370749197f6cbbd694cf874ffe0e35c223584659ac11f018aec973d7b363d0
3eb583d3483b1e1f1c3bc8e7feea7b250d43e9843a75ced32e49e73da2356493
49f14786a502978527a628fd85bbc9d5ff144158bca2145f4bed929f7552ece8
Total reclaimed space: 0B
[root@localhost ~]#
总结
上面我们演示了如何去创建一个容器,如何运行一个容器,如何去暂停容器和停止容器,并且介绍了如何清理停止中的容器。在后续的分享中,我们还会介绍如何进入到容器,如何删除容器等操作,敬请期待吧!
相关文章:
Docker实战-操作Docker容器实战(一)
导语 在之前的分享中,我们介绍了关于如何去操作Docker镜像,下面我们来看看如何去操作容器。 简单来讲,容器是镜像运行的一个实例,与镜像不同的是镜像只能作为一个静态文件进行读取,而容器是可以在运行时进行写入操…...
c#设计模式-行为型模式 之 观察者模式
定义: 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者 对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自 …...
开窗积累之学习更新版
1. 开窗使用1之 count range between current row and current row 将相同排序字段的值进行函数计算 selectsku_id,substr(create_date,1,7) date_month,order_id,create_date,sku_num*price,sum(sku_num*price) over (partition by sku_id order by substr(create_date,1,7)…...
ffplay简介
本文为相关课程的学习记录,相关分析均来源于课程的讲解,主要学习音视频相关的操作,对字幕的处理不做分析 ffplay播放器的意义 ffplay.c是FFmpeg源码⾃带的播放器,调⽤FFmpeg和SDL API实现⼀个⾮常有⽤的播放器。 ffplay实现了播…...
mysql之limit语句详解
一、介绍 LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数。 二、使用 1. 语法格式 LIMIT [位置偏移量,] 行数 其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开始显示,索引值从0开始ÿ…...
4.while循环
1、while语句的语法结构如下: while语句可以在条件表达式为真的前提下,循环执行指定的一段代码,直到表达式不为真时结束循环。 1.1while语法结构 while(条件表达式){// 循环体} 执行思路: 1、执行思路 当条件表达式结果为tru…...
【雕爷学编程】 MicroPython动手做(35)——体验小游戏2
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
mouseover 和 mouseenter
mouseover 和 mouseenter 事件是 JavaScript 中常用的两个鼠标事件,它们有一些区别: 触发条件: mouseover 事件在鼠标指针从元素外部进入元素内部时触发,包括子元素。换句话说,只要鼠标进入元素或其子元素,就会触发 mo…...
[JavaScript游戏开发] 绘制Q版地图、键盘上下左右地图场景切换
系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 第四章 绘制Q版地图、键盘上下左右地图场景切换 文章目录 系列文章目录前言一、本章节…...
CI/CD持续集成持续发布(jenkins)
1.背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新…...
Qt5.14.2+QtCreator+PDB 查看源码
1. 在Creator添加源码 2. 安装PDB文件 Qt下载时没有整合最新的PDB文件下载,如果没有安装PDB文件,即使安装了src也无法调试。 双击MaintenanceTool.exe->设置->资料档案库->临时资料档案库->添加按钮,添加如下下载源:…...
DOM基础获取元素+事件基础+操作元素
一.DOM简介 DOM,全称“Document Object Model(文档对象模型)”,它是由W3C定义的一个标准。 在实际开发中,我们有时候需要实现鼠标移到某个元素上面时就改变颜色,或者动态添加元素或者删除元素等。其实这些效…...
MATLAB——感知神经网络学习程序
学习目标:从学习第一个最简单的神经网络案例开启学习之路 感知器神经网络 用于点的分类 clear all; close all; P[0 0 1 1;0 1 0 1]; %输入向量 T[0 1 1 1]; %目标向量 netnewp(minmax(P),1,hardlim,lea…...
SpringBoot中事务失效的原因
SpringBoot中事务失效的原因 文章目录 SpringBoot中事务失效的原因一、事务方法非public修饰二、非事务方法调用事务方法三、事务方法的异常被捕获四、事务异常类型不对五、事务传播行为不对六、没有被Spring管理6.1、暴漏代理对象6.2、使用代理对象 常见的事务失效原因包括如下…...
Webstorm的一些常用快捷键
下面是Webstorm的一些常用快捷键: ctrl shift n: 打开工程中的文件,目的是打开当前工程下任意目录的文件。ctrl j: 输出模板ctrl b: 跳到变量申明处ctrl alt T: 围绕包裹代码(包括zencoding的Wrap with Abbreviation)ctrl []: 匹配 {}[]ctrl F1…...
系统集成项目成本管理
在项目中,成本是指项目活动或其组成部分的货币价值或价格,包括为实施、完成或创造该活动或其组成部分所需资源的货币价值。具体的成本一般包括直接工时、其他百接费用、间接工时、其他间接费用以及采购价格。 项目全过程所耗用的各种成本的总和为项目成本…...
Spring Boot整合ES的两种方式
使用Spring Data Elasticsearch Starter 在Spring Boot中整合Elasticsearch的方式之一是使用Elasticsearch的官方Spring Data Elasticsearch Starter。该Starter提供了对Elasticsearch的高级集成,简化了配置和管理Elasticsearch客户端。 下面是使用Spring Data E…...
Ajax_3 Ajax原理+ (XMLHttpRequest + Promise )+ 封装一个axios插件库,实现功能。
Ajax_3 Ajax原理 01-Ajax原理-XMLHttpRequest 使用XMLHttpRequest 步骤: 创建XMLHttpRequest对象配置请求方法请求url网址监听loadend事件,接受响应结果发起请求 需求:使用XMLHttpRequest对象与服务器通信 代码示例 // 1. 创建 XMLHttpReq…...
计算机网络(7) --- UDP协议和TCP协议
计算机网络(6) --- https协议_哈里沃克的博客-CSDN博客https协议https://blog.csdn.net/m0_63488627/article/details/132112683?spm1001.2014.3001.5501 目录 1.补充知识 1.PORT端口号 2.端口号范围划分 3.知名端口号 2.UDP协议 1.UDP报头 2.U…...
Jenkins 修改默认管理员帐号
1、新增一个新的超级管理员用户,并验证能正常登录 2、进入 Jenkins 用户管理目录: /data/software/jenkins/users 3、修改超级管理文件夹的名称为其他名称,如:mv admin_*** ifadm_*** 4、重启Jenkins容器...
CMMLU中文理解瓶颈再定位:从词义消歧到跨文档推理,5个未公开bad case驱动的模型优化路径
更多请点击: https://intelliparadigm.com 第一章:CMMLU中文理解瓶颈再定位的总体发现 评测基准与数据分布偏移现象 近期对 CMMLU(Chinese Massive Multitask Language Understanding)基准的系统性重测揭示:模型在人…...
面向AI系统的非功能测试:公平性、可解释性与鲁棒性验证
一、引言:当“功能正确”不再是终点在软件测试的早期时代,我们的职责边界相对清晰——功能符合需求文档、性能达到指标、界面无错别字,测试便可宣告完成。然而,当AI系统从实验室的象牙塔走向社会决策的核心地带,这套传…...
告别手动!用Windows批处理脚本批量搞定MKVToolNix音轨修改(附完整代码)
告别手动!用Windows批处理脚本批量搞定MKVToolNix音轨修改(附完整代码) 每次下载完一整季剧集或动漫,最头疼的就是音轨标签乱七八糟——日语、英语、中文混在一起,默认音轨设置也不对。手动在MKVToolNix里一集集调整&a…...
C语言实战:从零构建2048游戏,掌握核心算法与图形编程
1. 项目概述与核心思路 作为一个写了十几年代码的老程序员,我始终认为,学习一门编程语言最有效的方式,不是死记硬背语法,而是动手去实现一个完整的、有成就感的项目。今天,我们就来聊聊如何用C语言,从零开始…...
Wan Tasks API 集成与使用指南
简介 Wan Tasks API 是 Ace Data Cloud 提供的一项功能强大的服务,允许开发者通过输入任务 ID 来查询视频生成任务的执行状态。这项 API 主要用于与 Wan Videos Generation API 配合使用,帮助用户获取视频生成任务的实时信息,确保用户能够高…...
ArcGIS Pro脚本工具实战:一键自动化面要素数据质检与修复流程
1. 为什么需要自动化面要素质检工具 做GIS数据处理的朋友们应该都深有体会,每次拿到一批新的面要素数据,最头疼的就是要检查各种几何错误。传统的手动检查方式有多痛苦?我给大家列几个典型场景: 检查重叠要素要用拓扑工具…...
Python 3.12 Std_Libs - String - 06 - 前缀和后缀
Python 3.12 Std_Libs - String - 前缀和后缀 在字符串处理中,检查字符串是否以某个前缀或后缀开头/结尾,以及安全地删除这些前缀/后缀,是极为常见的操作。Python 的 str 类型提供了四个专门的方法:startswith()、endswith()、removeprefix() 和 removesuffix()。此外,标准…...
高端酒庄都在偷用的印相秘技:基于真实酒液折射率建模的--iw 2.8微调法(附光学参数对照速查卡)
更多请点击: https://intelliparadigm.com 第一章:高端酒庄印相美学的光学本质解构 高端酒庄的视觉识别系统——尤其是瓶标、酒窖导视与品鉴手册中的“印相美学”,并非仅关乎设计风格,其底层实为光与物质交互的精密光学工程。当光…...
Pearcleaner:为你的Mac带来彻底清理体验的免费开源工具
Pearcleaner:为你的Mac带来彻底清理体验的免费开源工具 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾因Mac存储空间不足而感到困扰&am…...
同态加密优化与安全字符串匹配技术解析
1. 同态加密与安全字符串匹配技术概述在现代数据隐私保护领域,同态加密(Homomorphic Encryption, HE)技术因其独特的"加密数据可计算"特性而备受关注。这项技术允许第三方在不解密的情况下对加密数据进行特定计算,计算结果解密后与对明文直接计…...
