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 ~]# 

总结

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

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

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

相关文章

SpringBoot中Redis报错:NOAUTH Authentication required

1、问题 org.springframework.dao.InvalidDataAccessApiUsageException: NOAUTH Authentication required.; nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required. … 2、解决 如果提供了密码还没解决,那可能是…

如何从 Android 设备恢复已删除的文件?

从 Android 设备恢复已删除的文件很简单,但您需要了解内部恢复和SD 卡恢复之间的区别。 目前销售的大多数 Android 设备都配备了 SD 卡插槽(通常为 microSD),可以轻松添加额外的存储空间。该存储空间可用于存储照片、视频、文档&a…

枫叶时代:打造中国特色的传统文化IP

近年来,取材于传统文化的影视作品在文化产业市场受到前所未有的关注。作为一种兼具辨识度、影响力和流量变现能力的文化符号,影视IP既是文化产业的一个重要环节,也是国家文化软实力的直接体现。优秀的影视IP可以超越文字、语言、民族的障碍&a…

Stable Diffusion - SDXL 模型测试 (DreamShaper 和 GuoFeng v4) 与全身图像参数配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132085757 图像来源于 GuoFeng v4 XL 模型,艺术风格是赛博朋克、漫画、奇幻。 全身图像是指拍摄对象的整个身体都在画面中的照片&…

Redis 客户端有哪些?

文章目录 JedisLettuceRedisson最佳实践 - 到底用哪个? Redis 最常见的 Java 客户端有两个,Jedis 和 Lettuce,高级客户端有 Redisson,见下图(图源 Clients | Redis) Jedis Github地址:redis/j…

Redis主从复制原理

持久化机制是在一台Redis主机上进行操作,如果这台机器出了问题,如果是持久化数据的硬盘出了问题,那数据就会丢失。主从复制就是为了解决单点故障的。 同时,主从模式下采用的是读写分离来对外提供服务 于是,将主服务器和…

Cocos Creator的 Cannot read property ‘applyForce‘ of undefined报错

序: 1、博主是看了这个教程操作的时候出的bug>游戏开发 | 17节课学会如何用Cocos Creator制作3D跑酷游戏 | P9 代码控制对象移动_哔哩哔哩_bilibili 2、其实问题不是出在代码上,但是发现物体就是不平移 3、node全栈的资料》node全栈框架 正文…

AMEYA360:瑞萨电子MCU和MPU产品线将支持Microsoft Visual Studio Code

全球半导体解决方案供应商瑞萨电子宣布其客户现可以使用Microsoft Visual Studio Code(VS Code)开发瑞萨全系列微控制器(MCU)和微处理器(MPU)。瑞萨已为其所有嵌入式处理器开发了工具扩展,并将其…

QTableWidget对单元格(QWidget/QTableWidgetItem)的内存管理[clearContents()]

目录 现象结论代码验证clearContents() 会释放QTableWidgetItem 和QWidget 对象,但是不指向nullptrmemorytable.hmemorytable.cpp断点情况 验证clearContents()是延时释放QWidget 的而QTableWidgetItem 立即释放 现象 结论 clearContents() 会清除表格中的所有单元格…

Unity 引擎做残影效果——2、屏幕后处理方式

Unity实现残影效果 大家好,我是阿赵。 这里继续介绍Unity里面做残影的方法。之前介绍了BakeMesh的方法做残影,这一期介绍的是用屏幕后处理的方法做残影。 一、原理 之前的BakeMesh方法,是真的生成了很多个网格模型在场景里面。如果用后处理做…

自建类ChatGPT服务:本地化部署与远程访问教程

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

Android Studio安装AI编程助手Github Copilot

csdn原创谢绝转载 简介 文档链接 https://docs.github.com/en/copilot/getting-started-with-github-copilot 它是个很牛B的编程辅助工具,装它,快装它. 支持以下IDE: IntelliJ IDEA (Ultimate, Community, Educational)Android StudioAppC…