Docker容器基本操作

news2024/9/24 11:33:59

docker中的容器就是一个轻量级的虚拟机,是镜像运行起来的一个状态,本文就先来看看容器的基本操作。

查看容器

查看容器

启动docker后,使用docker ps命令可以查看当前正在运行的容器:

 

查看所有容器

上面这条命令是查看当前正在运行的容器,如果需要查看所有容器,则可以通过docker ps -a命令查看:

 

在查看容器时,涉及到几个查看参数,含义分别如下:

  1. CONTAINER ID

    CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数,在不会混淆的情况下可以只采用id的前几位进行标识一个容器。

  2. IMAGE

    IMAGE表示创建容器时使用的镜像。

  3. COMMAND

    COMMAND表示容器最后运行的命令。

  4. CREATED

    创建容器的时间。

  5. STATUS

    容器的状态,这里可能显示一个容器启动时间,也能显示容器关闭时间。具体显示那个要看容器当前的状态。

  6. PORTS

    容器对外开放的端口。

  7. NAMES

    容器的名字,如果不设置,会有一个默认的名字。

查看最新创建的容器

使用docker ps -l可以查看最近创建的容器,如下:

 

查看最新创建的n个容器

可以使用docker ps -n=XXX来查看最新创建的n个容器,如下:

 

创建容器

创建容器整体上来说有两种不同的方式,可以先创建,再启动,也可以连创建带启动一步到位,无论是那种方式,流程都是相似的,当执行一个创建命令之后,docker首先会去本地路径下查找是否有相应的镜像,如果没有,就去docker hub上搜索,如果搜索到了,则下载下来,然后利用该镜像创建一个容器并启动。容器的文件系统是在只读的镜像文件上添加一层可读写的文件层,这样可以使在不改变镜像的情况下,只记录改变的数据。下面对这两种方式分别予以介绍。

容器创建

开发者可以首先使用docker create命令创建一个容器,这个时候创建出来的容器是处于停止状态,没有运行,例如要创建一个nginx容器,创建命令如下:

docker create nginx

创建成功后,可以查看容器是否创建成功:

此时创建的容器并未运行,处于停止状态,容器的name是随机生成的,开发者也可以在创建容器时指定name,如下:

docker create --name=nginx nginx

运行结果如下:

 

此时的name属性就不是随机生成的,而是用户指定的name。

这种方式只是单纯的创建了一个用户,并未启动。

容器创建+启动

如果开发者需要既创建又启动容器,则可以使用docker run命令。docker run命令又可以启动两种不同模式的容器:后台型容器和交互型容器,顾名思义,后台型容器就是一个在后台运行的容器,默默的在后台执行计算就行了,不需要和开发者进行交互,而交互型容器则需要接收开发者的输入进行处理给出反馈。对于开发者而言,大部分情况下创建的都是后台型容器,不过在很多时候,即使是后台型容器也不可避免的需要进行交互,下面分别来看。

后台型容器

后台型容器以nginx为例,一般nginx在后台运行即可:

docker run --name nginx1 -d -p 8080:80 nginx

--name含义和上文一样,表示创建的容器的名字,-d表示容器在后台运行,-p表示将容器的80端口映射到宿主机的8080端口,创建过程如下图:

首先依然会去本地检查,本地没有相应的容器,则会去Docker Hub上查找,查找到了下载并运行,并且生成了一个容器id。运行成功后,在浏览器中输入http://localhost:8080就能看到Nginx的默认页面了,如下:

这是一个后台型容器的基本创建方式。

交互型容器

也可以创建交互型容器,例如创建一个ubuntu容器,开发者可能需要在ubuntu上面输入命令执行相关操作,交互型容器创建方式如下:

docker run --name ubuntu -it ubuntu /bin/bash

参数含义都和上文一致,除了-it,-it参数,i表示开发容器的标准输入(STDIN),t则表示告诉docker,为容器创建一个命令行终端。执行结果如下:

该命令执行完后,会打开一个输入终端,读者就可以在这个终端里愉快的操作ubuntu了。 想要退出该终端,只需要输入exit命令即可。

容器启动

启动

如果开发者使用了docker run命令创建了容器,则创建完成后容器就已经启动了,如果使用了docker create命令创建了容器,则需要再执行docker start命令来启动容器,使用docker start命令结合容器id或者容器name可以启动一个容器,如下:

docker start启动的是一个已经存在的容器,要使用该命令启动一个容器,必须要先知道容器的id或者name,开发者可以通过这两个属性启动一个容器(案例中,nginx是通过name启动,而ubuntu则是通过id启动)。一般来说,第一次可以使用docker run启动一个容器,以后直接使用docker start即可。

重启

容器在运行过程中,会不可避免的出问题,出了问题时,需要能够自动重启,在容器启动时使用--restart参数可以实现这一需求。根据docker官网的解释,docker的重启策略可以分为4种,如下:

四种的含义分别如下:

  1. no表示不自动重启容器,默认即此。

  2. on:failure:[max-retries]表示在退出状态为非0时才会重启(非正常退出),有一个可选择参数:最大重启次数,可以设置最大重启次数,重启次数达到上限后就会放弃重启。

  3. always表示始终重启容器,当docker守护进程启动时,也会无论容器当时的状态为何,都会尝试重启容器。

  4. ubless-stopped表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它。

容器停止

通过docker stop命令可以终止一个容器,如下:

可以通过name或者id终止一个容器。

容器删除

单个删除

容器停止后还依然存在,如果需要,还可以通过docker start命令再次重启一个容器,如果不需要一个容器,则可以通过docker rm命令删除一个容器。删除容器时,只能删除已经停止运行的容器,不能删除正在运行的容器。如下:

可以通过name或者id删除一个容器。如果非要删除一个正在运行的容器,可以通过-f参数实现,如下:

批量删除

容器也可以批量删除,命令如下:

docker rm $(docker ps -a -q)

docker ps -a -q会列出所有容器的id,供rm命令删除。

如下命令也支持删除已退出的孤立的容器:

docker container prune

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

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

相关文章

[强网杯 2019]高明的黑客

目录 信息收集 正则测试 python脚本 getshell 信息收集 $_GET[ganVMUq3d] ; eval($_GET[ganVMUq3d] ?? ); $_GET[jVMcNhK_F] ; system($_GET[jVMcNhK_F] ?? ); $_GET[cXjHClMPs] ; echo {$_GET[cXjHClMPs]}; 下载gz解压后得到几千个php文件,简单看…

【项目实战】count(1) 、count(col)、count(*) 如何选择?

一、背景 有时候会看业务执行的情况,如查看多少用户已经领取了礼品等,需要看数据库的计数或统计用户使用情况时,往往会使用聚合函数COUNT(),聚合函数有很多种,列出如官网的截图 而其中常用的聚合函数主要是包括以下&…

Linux常用命令——readelf命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) readelf 用于显示elf格式文件的信息 补充说明 readelf命令用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持…

java基于ssm滑雪场门票在线售票系统的设计与实现

基于jsp技术设计并实现了滑雪售票系统。该系统基于B/S即所谓浏览器/服务器模式,应用SSM框架,选择MySQL作为后台数据库。系统主要包括个人中心、用户管理、票务信息管理、购票信息管理、技巧交流、系统管理等功能模块。 性能测试主要通过模拟系统运行环境…

蓝桥杯刷题017——轨道炮(贪心)

2019国赛轨道炮 题目描述 小明在玩一款战争游戏。地图上一共有 N 个敌方单位,可以看作 2D 平面上的点。其中第 i 个单位在 0 时刻的位置是 (Xi​,Yi​),方向是 Di​ (上下左右之一, 用U/D/L/R 表示),速度是 Vi​。 小明的武器是轨道炮&#x…

我来告诉你,ChatGPT 该怎么对接到自己的项目中!

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 1. 项目介绍 《ChatGPT AI 问答助手》 开源免费项目,涵盖爬虫接口、ChatGPT API对接、DDD架构设计、镜像打包、Dock…

六十年间中国经济总量增长245倍

中国GDP(现价美元)走势图回顾2022年,中国经济顶住了来自防控疫情及国际变化的巨大压力,全年GDP实现3%的同比增长,其中年末冬季GDP同比增长2.9%。从主要指标显示,12月第三产业、投资、地产都有不同程度的改善…

HTB_Base_php弱类型与find命令提权

至此,startpoint部分就完成了,也初步建立的渗透测试的思路和体系 温故而知新,可以为师矣 文章目录信息收集php弱类型 & strcmp绕过GTFOBins 二进制常用命令find提权信息收集 nmap -sC -A -Pn ip开放端口22、80 dirsearch 扫描目录&…

一文5000字手把手教你使用jenkins搭建一个中小企业前端项目部署环境

本文你能学到什么? 传统发布和现在发布的对比和区别 项目案例-手动上传服务器,使用jenkins上传服务器 配置不同的发布环境 配置域名 配置https 配置钉钉机器人通知【文末有配套资源领取】 服务器购买:抢占式实例 Jenkins 安装 示例服务器为 阿里…

系统移植 tf-a

1、从ST官网下载TF-A源码,将TF-A源码拷贝到ubuntu中并进行解压。 2、进入tf-a源码,阅读README.HOW_TO.txt帮助文档。 3、分析帮助文档。 分析文档可得,移植tf-a到开发板中步骤为:对tf-a源码进行解压;打补丁&#xff…

ElasticSearch从入门到出门【上】

文章目录初识elasticsearch了解ESelasticsearch的作用ELK技术栈elasticsearch和lucene为什么不是其他搜索技术?倒排索引正向索引倒排索引正向和倒排ES的一些概念文档和字段索引和映射mysql与elasticsearch安装elasticsearch部署单点es部署kibana安装IK分词器在线安装…

SpringBoot 使用自定义的方式整合Druid数据源(powernode document)(内含源代码)

SpringBoot 使用自定义的方式整合Druid数据源(powernode document)(内含源代码) 源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87404561 目录SpringBoot 使用自定义的方式整合Druid数据源…

SQLSERVER 的 nolock 到底是怎样的无锁?

一:背景 1. 讲故事 相信绝大部分用 SQLSERVER 作为底层存储的程序员都知道 nolock 关键词,即使当时不知道也会在踩过若干阻塞坑之后果断的加上 nolock,但这玩意有什么注意事项呢?这就需要了解它的底层原理了。 二:n…

python之np.sum()用法详解

python库numpy提供的求和方法np.sum(),可以对数组和矩阵进行求和。sum方法可以接收多个参数,主要是数组a,坐标轴axis,数据类型dtype,初始值initial。其中,axis对于我们来说比较容易迷糊,这个值对求和有什么影响?一般来…

Linux常用命令——rcp命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) rcp 使在两台Linux主机之间的文件复制操作更简单 补充说明 rcp命令使在两台Linux主机之间的文件复制操作更简单。通过适当的配置,在两台Linux主机之间复制文件而无需输入密码,就像本地文…

React基础入门(一)

1、React简介 官网 英文官网: https://reactjs.org/ 中文官网: https://react.docschina.org/ 描述介绍 用于动态构建用户界面的 JavaScript 库(只关注于视图) 由Facebook开源 React特点 1、声明式编码 2、组件化编码 3、React Native 编写原生应用 4、高效(优秀…

苹果不小心删了照片怎么恢复?苹果照片删除后如何恢复

苹果不小心删了照片怎么恢复?请保持冷静,不要往mac中写入新的东西,以防丢失的照片被覆盖。接下来,我们一起来探讨一下mac照片恢复的技巧。 方法一、从“最近删除”文件夹中恢复照片 使用照片管理应用程序(例如Mac上的…

百趣代谢组学分享Lip-SMap:绘制代谢物和蛋白相互作用图谱的新方法

百趣代谢组学文献分享,自2014年瑞士苏黎世联邦理工学院的Picotti和她的研究小组开始用Lip-SRM法测量复杂蛋白质混合物的大量结构改性蛋白质以来[1];该研究小组随后对方法进行改进,研究了复杂细胞基质中几种生物蛋白质的热稳定性,并…

袁树雄和唐磊关系迎来转折,王勇把他们两个和杨语莲拉进一个群

自从《早安隆回》火爆全网之后,创作者袁树雄就遭遇各种非议,就是他的同行唐磊老师,也勇敢站出来点评。唐磊老师也是一名音乐人,当年他凭借《丁香花》,一夜之间响彻大江南北,成为了家喻户晓的大明星。 虽然唐…

1行Python代码识别车牌号码,轻松写一个停车场管理系统,YYDS

大家好,这里是程序员晚枫。 你家停车场的摄像头,是怎么识别出你的车牌的?今天我们一起来看一下~ 识别车牌 识别车牌的代码很简单,只需要1行代码,如下所示。👇 # pip install poocr import poocr# 可以填…