docker系列4:docker容器基本命令

news2024/11/13 9:47:48

传送门

前面介绍了docker的安装:docker系列1:docker安装

还有docker镜像加速器:docker系列2:阿里云镜像加速器

以及docker的基本操作: docker系列3:docker镜像基本命令

引子

从今年3月到现在,基本没有进行博客更新了,算下来大概是3个月左右。

在这期间主要是做了一件"不务正业"的事情,报名考了一下PMP,通俗点说就是参加了软件行业的项目经理考试认证,过了就给发一个证书!注意这里只是说的参加了,考过没有我也不知道,因为成绩要在8月份才出来。如果有机会,会把报考PMP相关的流程及资料通过专栏的形式分享出来(有的资料是培训班的,可能会侵权,就不一定放了)。

通过这几个月的刷题及学习,又深深的体验了一把中国人的考试热情。本以为类似这种带有专业性质的且收费偏高的认证考试应该没有多少人,结果到了考试那天才发现,锣鼓喧天人山人海!这是继"人人都是项目经理"之后,又变成了"人人都是产品经理"。

个人觉得还是有一定收获的,通过它系统性的了解了项目管理的理论知识体系,及一些常见项目管理案例。当然如果要靠一纸证书就能成为专业的项目经理,可能任重而道远,毕竟在中国的软件行业环境下,有一些正在从事项目管理的专业人员也并不十分专业!

docker的基本命令

容器基本命令

拉取镜像

在前面介绍过镜像拉取,理论上只要是仓库里面的有的,都可以直接拉取,甚至是一个操作系统,比如现在就试着拉取一个centos!

先搜索一下:

docker search centos

会输出查询结果,里面有一个centos镜像

 现在把它拉取下来:

docker pull centos

由于配置了镜像加速器,很快就下载完成了: 

那么这个镜像如何运行呢?

启动镜像

要创建并启动一个容器,可以用如下命令:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

这个命令的参数非常多,这里就不贴出来了,可以直接查看命令,官方对这个命令的解释:

Create and run a new container from an image:从镜像中创建并运行一个容器

假设要启动刚才的centos镜像,就可以用如下命令:

docker run --name test_centos -it centos /bin/bash

其中的

  • --name:表示给容器取一个名字 
  • -it:表示通过交互式方式进入容器
  • --detach , -d:后台方式运行容器,并打印容器ID
  • --hostname , -h:指定容器的主机名

执行之后,会执行并进入容器:

 这个时候,在ls一下,会发目录跟主机有点不同,这是因为这个时候通过-it命令已经进入到容器里面了:

 上面的-it表示的就是通过交互式方式进入容器。

而如果-d就表示后台方式运行容器:

docker run --name test_centos2 -d centos /bin/bash

 执行之后,会显示启动结果:

注意,这里启动的时候,指定的别名是test_centos2,而第一次-it启动的时候是别名test_centos,这是为什么呢?

因为一个镜像可以启动多个容器,但是容器是不能重名的,所以要通过加--name来区分!如果尝试用相同的容器名称来启动,会收到错误信息:

 而如要指定容器的主机名就用--h参数了,运行下面的命令

docker run -it --name test_centos4 -h test_centos centos /bin/bash

 会运行一个新容器,观察一下主机名称:

 更多的命令可以通过--help来查看了

退出容器

exit命令

用上面的docker run命令运行容器之后,直接输入exit就可以退出容器了。不过这种方式退出容器之后,容器就会停止。比如现在重新运行一个容器,执行exit命令:

 Ctrl+P+Q

如果要退出容器并且不停止容器运行,可以用Ctrl+P+Q命令

查看运行容器

要查看当前运行的容器

docker ps [OPTIONS]

Options

Name, shorthandDefaultDescription
--all , -aShow all containers (default shows just running)
--filter , -fFilter output based on conditions provided
--formatFormat output using a custom template: ‘table’: Print output in table format with column headers (default) ‘table TEMPLATE’: Print output in table format using the given Go template ‘json’: Print in JSON format ‘TEMPLATE’: Print output using the given Go template. Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates
--last , -n-1Show n last created containers (includes all states)
--latest , -lShow the latest created container (includes all states)
--no-truncDon’t truncate output
--quiet , -qOnly display container IDs
--size , -sDisplay total file sizes

就是用上面的docker ps命令:

而如果要查看所有运行过的容器,加上-a参数:

删除容器

要删除当前容器,可以用docker rm命令

docker rm [OPTIONS] CONTAINER [CONTAINER...]

Options

Name, shorthandDefaultDescription
--force , -fForce the removal of a running container (uses SIGKILL)
--link , -lRemove the specified link
--volumes , -vRemove anonymous volumes associated with the container

比如,docker ps -a查看所有的容器,选择对应的容器id,通过docker rm删除:

 注意上面的status这一列,如果Exited表示停止的容器,如果是正在运行的容器,docker rm是删除不了的,必须通过-f参数强制进行删除:

启动容器

如果要启动已停止的容器,可以通过命令docker start:

docker start [OPTIONS] CONTAINER [CONTAINER...]

Options

Name, shorthandDefaultDescription
--attach , -aAttach STDOUT/STDERR and forward signals
--checkpointexperimental (daemon)
Restore from this checkpoint
--checkpoint-direxperimental (daemon)
Use a custom checkpoint storage directory
--detach-keysOverride the key sequence for detaching a container
--interactive , -iAttach container’s STDIN

 比如,docker ps --filter status=exited查看所有停止的容器(关于容器状态,可以查看命令:docker ps)

然后,选择一个或多个CONTAINER ID进行启动:

停止容器

停止容器,可以用docker stop命令

docker stop [OPTIONS] CONTAINER [CONTAINER...]

Options

Name, shorthandDefaultDescription
--signal , -sSignal to send to the container
--time , -tSeconds to wait before killing the container

重启容器

重新启动容器,可以用docker restart命令

容器重命名

如果要对容器重新命名,可以用docker rename命令

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

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

相关文章

OpenGL模型加载

1.模型加载库 Assimp库能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至Assimp的通用数据结构中。 当使用Assimp导入一个模型的时候,它通常会将整个模型加载进一个场景(Scene)对象&#x…

什么是EBNF?并举例介绍

EBNF(Extended Backus-Naur Form)是一种扩展的Backus-Naur形式,是一种用于描述上下文无关文法(CFG)的元语言。 EBNF用于定义编程语言、数据格式和其他形式的语法。它使用一些扩展的符号来描述语法规则,包括…

.Net Core 2.2 升级到 .Net Core 3.1

微软在更新.Net Core版本的时候,动作往往很大,使得每次更新版本的时候都得小心翼翼,坑实在是太多。往往是悄咪咪的移除了某项功能或者组件,或者不在支持XX方法,这就很花时间去找回需要的东西了,下面是个人在…

基于Python的点赞、收藏博客

文章目录 前言一、点赞和取消点赞1.请求url和请求方法2.入参3.响应结果3.1点赞3.2取消点赞 4.代码5.效果 二、收藏2.1判断博客是否收藏过2.1.1请求url和请求方法2.1.2响应结果未收藏已收藏 2.1.3代码2.1.4效果 2.2收藏博客2.2.1请求url和请求方法2.2.2入参2.2.3响应结果2.2.4代…

爬虫小白应该如何学习爬虫

什么是Python3网络爬虫? 定义: 网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。爬虫其实是通过编写程序,模拟浏览器上网&#x…

高频面试题/面试经常被问到怎么处理接口依赖该怎么回答

前言 由于快到金九银十了,笔者最近呢发的都是一些有关面试方面的文章,有需要的小伙伴可以看看笔者的文章希望可以帮助到大家,今天呢笔者想和大家来聊聊在面试中被问到怎么处理接口依赖改怎么回答,废话就不多说了咱们直接进入主题…

互斥锁实现线程互斥(嵌入式学习)

互斥锁实现线程互斥 互斥锁的概念互斥锁的函数示例代码 互斥锁的概念 互斥锁(Mutex)是一种用于多线程编程的同步原语(synchronization primitive),用于实现线程之间的互斥访问共享资源。互斥锁提供了一种机制&#xff…

限流式保护器在高校中的应用

安科瑞虞佳豪 4月10日下午1点50多分 浙大紫金港校区边一活动板房发生火情。起火位置为浙大紫金港校区的动物保护基地。 “起火的地方是有一个学生动物保护者协会,里面有一些学生救助的猫、狗等小动物。”一位学校的学生告诉潮新闻记者。 随后,潮新闻…

C语言(14) 谈谈嵌入式 C 语言踩内存问题!

1 概述 C 语言内存问题,难在于定位,定位到了就好解决了。 这篇笔记我们来聊聊踩内存。踩内存,通过字面理解即可。本来是操作这一块内存,因为设计失误操作到了相邻内存,篡改了相邻内存的数据。 踩内存,轻则…

Shopify股价在暴涨了78%以后,还值得投资吗?

来源:猛兽财经 作者:猛兽财经 今年以来Shopify (SHOP)的股价一直在上涨,迄今为止的涨幅已经超过了78%,并且远远跑赢了美股的所有主要指数。 猛兽财经认为,Shopify的股价之所以能在今年上涨,主要受到以下几…

windows2022证书配置.docx

Windows证书的配置 要求两台主机,一台作为域,一台进入域 按要求来选择角色服务 确认之后安装 安装完以后配置证书服务 选择服务 按要求配置 注:此处不用域用户登陆无法使用企业CA 按要求来 创建新的私钥 这几处检查无误后默认即可 有效期…

实验篇(7.2) 16. 站对站安全隧道 - 通过聚合隧道走对方上网(FortiGate-IPsec) ❀ 远程访问

【简介】前面所有实验基本上是由向导来完成的,只有隧道聚合实验是手动设置的。那么远程访问经常用到的走对方宽带上网功能,需要怎样手动配置呢? 实验要求与环境 OldMei集团深圳总部防火墙现在有三条宽带了,二条普通宽带用来上网及…

SSCMS 内容管理系统介绍

概述 SSCMS 内容管理系统基于微软 .NET Core 平台开发,用于创建在 Windows、Linux、Mac 以及 Docker 上运行的 Web 应用程序和服务。 SSCMS 针对企业级客户开发,完全开源免费,可以用于商业用途不需要支付任何产品或授权费用。 SSCMS 经受了时间考验,1.0 版本在2003年发布…

跨模态检索最新高质量综述《Image-text Retrieval: A Survey on Recent Research and Development》

Image-text Retrieval: A Survey on Recent Research and Development 图像文本检索研究进展综述 2022.03 本文已把文献的引用逐个换成相应的论文标题,方便查找和阅读 摘要 本文从四个方面对ITR方法进行了全面和最新的调查。通过将ITR系统剖析为两个过程&#xff1…

基于Java+Swing+Mysql实现汽车信息管理系统

基于JavaSwingMysql实现汽车信息管理系统 一、系统介绍二、功能展示1.登陆2.车辆信息3.车辆入库4.车辆出库5.车辆查询6、车辆信息修改 三、数据库四、其它1.其他系统实现五.获取源码 一、系统介绍 系统实现汽车入库,汽车出库,汽车查询,汽车信…

2023软件测试八股文最全文档,再也不用担心面试了

前言 6月份已经快过完一半了,马上就要到金九银十的黄金招聘季节了,还在准备面试跳槽涨薪的小伙伴们可以看看本篇文章哟,这里呢笔者就不多说废话了直接上干货!答案已整理好,文末拿去即可!非常好用&#xff…

day57_Git

今日内容 零、 复习昨日 零、 复习昨日 文章目录 零、 复习昨日一、引言二、介绍三、Git安装3.1 下载Git3.2 安装3.3 基本配置3.4 测试 四、架构五、仓库5.1 新建仓库5.2 工作区5.3 暂存区5.4 分支 六、基本操作6.1 查看仓库状态6.2 暂存文件6.3 提交文件6.4 撤销已经add的文件…

POSTGRESQL PG_GATHER 如何单纯用SQL 就可以产生一个有意思的PG 的分析报告

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

【Android开发基础】Canvas画笔(以刮刮乐为例)

文章目录 一、引言二、设计1、获取图片资源2、获取屏幕信息3、Canvas涂层4、随机内容5、屏幕监听 三、附件1、UI设计2、总代码(1)控件初始化(2)图层初始化 3、源代码 一、引言 (本篇博客只说明Canvas画笔的使用&#…

STM32单片机(六)TIM定时器 -> 第六节:TIM输入捕获练习(输入捕获模式测频率和PWMI模式测频率占空比)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…