Docker实战-操作Docker容器实战(一)

news2024/10/3 4:30:22

导语
  在之前的分享中,我们介绍了关于如何去操作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 ~]# 

总结

  上面我们演示了如何去创建一个容器,如何运行一个容器,如何去暂停容器和停止容器,并且介绍了如何清理停止中的容器。在后续的分享中,我们还会介绍如何进入到容器,如何删除容器等操作,敬请期待吧!

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

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

相关文章

嵌入式的日常工作内容是什么?

1、看器件文档 2、找供应商要资料 3、打电话或微信联系供应商了解技术或器件细节 4、忍受门外汉领导连环夺命吹,因为他们不懂技术,只会问进度 5、写技术文档 6、跟硬件工程师联合测试,查看电路板未工作状态各种问题。有时还要自己手动DI…

tomcat通用回显

​Tomcat架构简析 tomcat的架构图 Server:整个tomcat启动的时候只有一个server Service:一个server中包含了多个service,表示服务 **Container:**容器,可以看作是一个servlet容器,包含一些Engine,Host,Context,Wraper等,访问的路径什么的就存放在这里 Engine -- 引擎 Host …

搞个个人博客,纯学习想找个纯html模板咋就这难

以前做毕业设计的时候老想找一些不掺杂后端代码的前端模板。 可是下载下来,不是php就是python后台的。看又看不懂,想换语言就必须先把里面的后台代码拿掉。 就很像买了个精装的二手房,白白多花了砸墙钱。 就比如,想做个带菜单的…

编写SPI_Master驱动程序_新方法

编写SPI_Master驱动程序_新方法 文章目录 编写SPI_Master驱动程序_新方法一. SPI驱动框架1.1 总体框架1.2 怎么编写SPI_Master驱动1.2.1 编写设备树1.2.2 编写驱动程序 二、 编写程序2.1 数据传输流程2.2 写代码 致谢 参考资料: 内核头文件:include\lin…

vsphere6.5 创建数据中心、集群和添加主机

1、新建数据中心,在入门页面选择创建数据中心,名称可以自定义。 2、创建完成数据中心后就可以添加主机和创建集群了。 3、新建一个集群,并打开DRS和HA功能,这两个功能的一些其他选项可以在创建完成后进一步设置,关于EV…

我能“C“——扫雷游戏

一.前言: 扫雷游戏,一款经典的游戏,没玩过的话也可以试着玩一玩,这样对写扫雷游戏这个小游戏的化是会有一个很好的思路的。那么本片博客就来介绍如何实现扫雷游戏的具体步骤。扫雷游戏链接👉 扫雷游戏网页版 - Minesw…

人工智能在推动生产力上的分析

像ChatGPT这样的大型语言模型正在成为强大的工具,不仅可以提高工人的生产力,还可以提高创新率,为经济增长的显著加速奠定基础。作为一项通用技术,人工智能将影响广泛的行业,促进对新技能的投资,改变业务流程…

DWG图纸在SOLIDWORKS软件里如何使用?

经常有工程师咨询DWG图纸在SOLIDWORKS软件里如何使用,其实这涉及到DWG图纸在SOLIDWORKS软件里的重用问题,SOLIDWORKS支持对DWG图纸的重用,常用的有三种方法: 1.作为原始DWG图纸查看作为原始DWG图纸查看是指使用SOLIDWORKS软件直接…

Nginx使用proxy_cache指令设置反向代理缓存静态资源

场景 CentOS7中解压tar包的方式安装Nginx: CentOS7中解压tar包的方式安装Nginx_centos7 tar文件 怎么load_霸道流氓气质的博客-CSDN博客 参考上面流程实现搭建Nginx的基础上,实现静态资源的缓存设置。 注意上面安装时的目录是在/opt/nginx目录下&…

Python编程从入门到实践练习第四章:对列表进行操作

本文目录 一、 创建数值列表1.1 使用range创建数字列表涉及方法使用实例输出 1.2 列表解析1.3 练习题代码输出 二、对列表部分元素进行操作2.1 切片使用实例 2.2 复制列表2.3 练习题代码输出 三、元组3.1 元组介绍3.2 练习题代码输出 一、 创建数值列表 1.1 使用range创建数字…

理解Android生命周期

写一个demo,实现两个页面之间的跳转。重写7个生命周期方法,在方法中打印日志,观察状态的变化。 MainActivity 设置一个常量。 private static final String TAG "hello_activity_1";重写7个生命周期。 在生命周期方法中&#…

No primary or single unique constructor found for interface java.util.List

报错截图: 报错内容: 2023-08-04 15:46:32.884 ERROR 14260 --- [io-8080-exec-10] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing fa…

对当下AI的一些观感思考

目前来看,AI技术地震的震中还是在美帝那旮瘩。尤其是M7,这几家市值加总快15万亿美元了,个个都是行业翘楚,个个都有拿得出手的东西。AI是个技术密集、人才密集、计算密集的产业。美帝拥有全球一流的顶尖人才,以及财力、…

【Leetcode】(自食用)树的中序遍历(递归+栈非递归)

step by step. 题目: 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入…

【LNMP】LNMP

LNMP:是目前成熟的企业网站的应用模式之一,指的是一套协同工作的系统和相关软件;能够提供静态页面服务,也可以提供动态web服务 L Linux系统,操作系统N Nginx网站服务,前端,提供前端的静态…

接口抓包,Fiddler抓包使用方法总结,入门到精通辅助实战...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 工作原理 Fiddle…

性能全面飙升!StarRocks 在贝壳找房的极速统一实践

小编导读: 贝壳找房是国内最大的在线房产交易平台之一,利用大数据技术进行房源的挖掘和匹配,通过数据分析和挖掘,更准确地了解用户需求,并为用户提供个性化的房源推荐和交易服务。 随着数据和业务规模的增长&#xff0…

carla中lka实现(一)

前言: 对于之前项目中工作内容进行总结,使用Carla中的车辆进行lka算法调试,整体技术路线: ①在Carla中生成车辆,并在车辆上搭载camera,通过camera采集图像数据; ②使用图像处理lka算法&#…

echart图标日环图

效果图&#xff1a; 代码实例&#xff1a; <template><div id"chart-alarm" class"chartStyle"></div> </template> <script> import echarts from echarts export default {name:alarm,data(){return{chart:null}},mounte…

mybatisplus集成geometry实现增改功能

前言 在我们工作中想要实现将空间点位信息存储到数据库时,一般使用以下语句实现 INSERT INTO test-point ( point,text ) VALUES ( st_GeomFromText ( POINT(1 1) ),第1个点);update test-point set pointst_PointFromText(POINT(5 5)) where id 10;但是这样每次都要去编写新…