在Centos Stream 9上Docker的实操教程(二) - Docker的常用命令

news2024/11/15 12:27:42

在Centos Stream 9上Docker的实操教程 - Docker的常用命令

  • Docker启动类命令
  • Docker镜像命令
      • 镜像列表 docker images
      • 镜像查找 docker search
      • 拉取镜像 docker pull
      • 删除镜像 docker rmi
      • 查看占用信息 docker system df
      • 容器创建新镜像 docker commit
  • 容器命令
      • 启动容器 docker run
      • 查看容器 docker ps
      • 已停止容器再启动 docker start
      • 重启容器 docker restart
      • 停止容器 docker stop
      • 强制停止容器 docker kill
      • 删除停止容器 docker rm
      • 容器的进入 docker exec 和 docker attach
      • 容器导入导出 docker import 和 docker export
  • 结语

Docker启动类命令

#启动docker
systemctl start docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#docker开机启动
systemctl enable docker
#docker各命令帮助文档 如 run指令 docker run --help
docker 具体指令 --help

Docker镜像命令

镜像列表 docker images

查看主机上的镜像列表可以使用 docker images 来列出

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    9c7a54a9a43c   3 weeks ago   13.3kB

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签,版本号
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

常用命令参数组合:

  • -a 列出本地所有镜像
  • -q 只显示镜像ID
[root@localhost ~]# docker images -a -q
0ec8ab59a35f
9c7a54a9a43c

镜像查找 docker search

使用 docker search XX某个镜像名称 命令来查找镜像,如redis

docker search redis

在这里插入图片描述

各个选项说明:

  • NAME: 镜像名称
  • DESCRIPTION: 镜像描述
  • OFFICIAL: 是否 docker 官方发布
  • STARS: 表示点赞、喜欢的数量
  • AUTOMATED: 是否自动构建的

如果你只想只想罗列出指定数量镜像,可以添加参数 --limit, 如:

docker search redis --limit 5

拉取镜像 docker pull

使用 docker pull XX某个镜像名称:TGA 命令来查找镜像,如果没有指定TGA版本默认latest,如redis

#拉取最新版redis
docker pull redis
#拉取指定版本redis
docker pull redis:6.0.8
#

删除镜像 docker rmi

我们上一章节run了hello-world镜像,我们来删除试试;

docker rmi hello-world
#可能会出现错误提示
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 7edf17cbcfd2 is using its referenced image 9c7a54a9a43c

发现报错了,这时候主要看两点:要么就是container实例存在,要么存在镜像依赖;

#查看容器实例
docker ps -a
#再删除容器
docker rm 容器实例ID
#再执行删除镜像命令
docker rmi hello-world

大家可能发现这样操作会比较麻烦,那么就引入一个参数 -f

  • -f : 强制删除即使容器在执行,如果不加如果已经运行了容器则不能删除

常用的删除命令如下:

#强制删除
docker rmi -f hello-world
#删除多个镜像
docker rmi -f xx镜像id xx镜像id
#删除全部
docker rmi -f $(docker images -qa)

查看占用信息 docker system df

[root@localhost ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          1         0         117.1MB   117.1MB (100%)
Containers      2         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B

该命令列出了 docker 使用磁盘的 4 种类型

  • Images: 所有镜像占用的空间,包括拉取的镜像、本地构建的镜像
  • Containers: 运行中的容器所占用的空间(没运行就不占空间),其实就是每个容器读写层的空间
  • Local Volumes: 本地数据卷的空间
  • Build Cache: 镜像构建过程中,产生的缓存数据

容器创建新镜像 docker commit

很多时候我们对某一镜像进行了一些升级或改动,又希望可以复用,比如我在默认ubuntu镜像中安装并配置了jdk、mysql等,我们可以提交该容器副本使之成为一个新的镜像

语法:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

参数说明:
OPTIONS说明:

  • -a :提交的镜像作者;
  • -c :使用Dockerfile指令来创建镜像;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停
# docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker commit -a "micro" -m "增加jdk mysql" 原ubuntu容器ID  newubuntu:u1
#使用查看镜像命令
docker images newubuntu:u1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
newubuntu           u1                  37af1236adef        15 seconds ago      329 MB

容器命令

启动容器 docker run

docker run 命令用于从镜像中创建一个新容器,该命令参数较多, 可以使用docker run --help查看详细参数解释
语法:

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

列举常用的几个参数进行说明

  • -t 在新容器内指定一个伪终端或终端,一般与 -i 一起使用 即:-it
  • -i 允许你对容器内的标准输入 (STDIN) 进行交互,一般与 -t 一起使用 即:-it
  • –name 为容器指定一个名称
  • -d 后台运行容器,并返回容器ID
  • -v 宿主机目录:容器中的目录: 挂载目录,将容器中的目录映射到宿主机中
  • -p 指定端口映射,格式为:主机(宿主)端口:容器端口
#前台运行模式
docker run -it redis
#后台运行模式
docker run -d redis

查看容器 docker ps

语法

docker ps [OPTIONS]

参数说明:

  • -a :列出当前所有正在运行的容器+历史上运行过的
  • -l :显示最近创建的容器
  • -n :显示最近n个创建的容器
  • -q :静默模式,只显示容器编号

已停止容器再启动 docker start

针对已经停止的容器实例,比如STATUS为Exited的容器

CONTAINER ID   IMAGE          COMMAND                  CREATED              STATUS                      PORTS     NAMES
9ac3579e18bb   redis          "docker-entrypoint.s…"   About a minute ago   Exited (0) 12 seconds ago             goofy_almeida

可以使用docker start 容器ID 的命令重新启动

docker start 9ac3579e18bb

重启容器 docker restart

docker restart 容器ID或容器名称

docker restart 9ac3579e18bb

停止容器 docker stop

docker stop 容器ID或容器名称

docker stop 9ac3579e18bb

强制停止容器 docker kill

docker kill 容器ID或容器名称

docker kill 9ac3579e18bb

删除停止容器 docker rm

docker rm 容器ID

#普通删除
docker rm 9ac3579e18bb 
#强制删除
docker rm -f 9ac3579e18bb 
#删除全部
docker rm -f $(docker ps -a -q)
#删除所有已停止容器
docker container prune

容器的进入 docker exec 和 docker attach

前面我们在介绍docker run 之命令的时候,分别介绍了前台启动 和后台启动,两者的区别就在于前台启动,只要exit退出指令容器也随之停止了; 而后台启动使用 docker exec 进入终端exit是不会停止容器的

第一种:
docker attach 直接进入容器启动命令的终端,不会启动新的进程,只要exit退出指令容器也随之停止了

docker attach 9ac3579e18bb

第二种:(推荐)
docker exec 是在容器中打开新的终端,并且可以启动新的进程,exit退出指令不会导致容器停止

docker exec -it 9ac3579e18bb /bin/bash

容器导入导出 docker import 和 docker export

很多时候我们在生产环境下是无法连接外网的,所以有时候需要用到容器的导入和导出。

  • 导出 docker export
    将容器导出为 redis-bak.tar
docker export 9ac3579e18bb > redis-bak.tar
  • 导入 docker import
    将容器导入生产镜像,镜像名称为bak/redis 版本号为v1.0.0
docker import redis-bak.tar bak/redis:v1.0.0

结语

本章主要介绍了Docker 启动类命令,Docker 镜像、容器常见命令,如果你觉得本文对你有帮助,可以点赞收藏,感谢!

下一章:在Centos Stream 9上Docker的实操教程 - Docker容器数据卷

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

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

相关文章

vue组件化路由

文章目录 vue项目1.vue组件2.插槽3.自定义指令4.vue路由 vue项目 vue项目中src目录的构成 assets: 存放项目中用到的静态资源文件,例如css,图片资源等components: 存放我们封装的、可复用的组件main.js: 项目的入口文件,整个项目的运行要先执行main.jsApp.vue: 项目的根组件 …

定时器详解 -- 定时器中断、PWM输出 --stm32

STM32定时器使用 STM32定时器计数模式定时器工作原理基本定时器:TIM6、TIM7示例代码代码讲解 通用定时器:TIM2、TIM3、TIM4、TIM5高级定时器:TIM1、TIM8定时器PWM输出原理通用定时器3控制通道1输出PWM脉冲代码 总结参考资料 STM32定时器 STM…

加密与解密 调试篇 动态调试技术 (三)-OllyDbg 插件 Run/Hit 符号调试 加载程序

目录 插件 这里给出一个命令行插件 Run Trace 运行 Hit Trace 符号调试 符号格式 1.SYM格式 2.COFF格式 3.CodeView格式 4.PDB格式 5.DBG格式 6.MAP文件 创建调试文件 加载程序 1.CreateProcess 2.将OllyDbg附加到一个正在运行的程序上 插件 OllyDbg允许插件 …

1计算机网络体系结构_1.1计算机网络概述

1.1.1计网_概念 概念: 计网是一个 将【分散的、具有独立功能的】计算机系统,通过【通信设备与线路】连接起来,由功能完善的软件实现资源共享和信息传递的系统。简言之,计算机网络就是一些 互连的、自治的 计算机系统 的 集合。 …

excel函数采集,截取特殊符号前面/后面数据

截取前面 LEFT(I2,FIND("-",I2)-1) 截取后面 MID(I2,FIND("-",I2)1,99) 房贷利率计算公司,等额本金 (B2-G2*A2)*F2*0.01 Excel常用电子表格公式大全  一、Excel基本公式   1、查找重复内容公式:IF(COUNTIF(A:A,A2)>1,&qu…

国密算法解析

国密算法即国家密码局认定的国产密码算法。 国密算法是商用密码,仅能用于商业用途。国密算法是一套标准,由国家密码局制定的规范,凡是符合的,都可以称之为国密算法。国密算法暂无官方的代码实现,企业可以自己编码实现…

2022年五一杯数学建模A题血管机器人的订购与生物学习解题全过程及论文和程序

2022年五一杯数学建模A题 血管机器人的订购与生物学习 原题再现: 随着微机电系统的发展,人类已经可以加工越来越小的机器。这些机器小到一定程度就可以放进血管开展疾病治疗,这就是血管机器人。血管机器人可以携带药物放入血管里定点治疗与…

信号调制的工作原理

要理解如何进行无线数据传输,我们需要了解: 什么是频率? 信息/数据信号 时间表示 频率表示,为什么它很重要? 滤波器如何工作? FCC通信频段 调制和解调 这些主题可能您在大学专业课上学过&#xff0c…

uboot下的mw写内存和md显示内存命令以及nand命令

配置uboot参数 setenv ipaddr 192.168.0.10;setenv serverip 192.168.0.40;setenv gatewayip 192.168.0.1;setenv netmask 255.255.255.0 setenv bootargs mem512M consolettyAMA0,115200 root/dev/mtdblock2 rootfstypeyaffs2 rw init/init mtdpartshinand:1M(boot),4M(kern…

面试offer收割机,爆肝整理高频软件测试面试题(带答案)

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

excel 给合并的单元格进行序号填充

一、问题描述 提示:这里描述项目中遇到的问题: 在使用excel 的时候,是否遇到过要给合并单元格排序的情况,下拉会显示需要相同的单元格才行,如图: 二、解决方案 目的是给单元格计数,所以使用…

Module not found: Error: Can‘t resolve ‘fs‘ in ‘/root/workspace/

项目发版时 因为webpack5 不会自动引入polyfills 导致报了一系列错, 按照提示做如下配置 externals 官网文档解释的很清楚,就是webpack可以不处理应用的某些依赖库,使用externals配置后,依旧可以在代码中通过CMD、AMD或者wi…

打车/代驾/跑腿小程序源码司机入住uniapp/thinkphp

开发代驾顺风车货运 客户端:Uniapp 开发 司机端:Uniapp 开发 后台:thinkphp5 框架 数据库:MySQL 打车/代驾/跑腿小程序源码司机入住uniapp/thinkphp 为什么用UNIAPP开发? UNIAPP框架简单,学习成本低…

Spring(IOC,DI,事务)属性

Spring(IOC,DI,事务)属性 IOC 概念 Inverse Of Controll:控制反转;反转了依赖关系的满足方式,由之前的自己创建依赖对象,变为由工厂推送。(变主动为被动,即反转)解决了…

1_5 optical_flow

采用特征点法做VO存在耗时较大的问题,一般耗时情况:如下 (1) 在图像中提取特征点并计算特征描述, 非常耗时 ~10ms ORB,shift耗时更多; (2) 在不同图像中寻找特征匹配, 非常耗时 …

day43|动态规划5-不同0-1背包的问题形态

关键点: 找到前后两种状态的依赖关系 经典0-1背包: 给定一个背包,问装满该背包的最大价值。分割等和子集: 给定一个背包,能不能装满该背包(将重量抽象成价值)最后一块石头重量: 给一…

如何快速图片压缩指定大小?图片压缩到200k以内的方法

图片压缩到200k以内的介绍 在现代社交媒体和网页设计中,高质量的图片是必不可少的。但是,大型图像文件可能会导致页面加载时间过长,从而影响用户体验。这时就需要使用图片压缩技术来将图片文件大小减小到合理的范围内。其中,将图…

稳健地对时间序列光学卫星图像进行配准教程

一、引言 几何误差会导致连续卫星图像采集之间的错位,进而影响土地监测和变化检测分析。在这篇博客文章中,我们研究了如何稳健地对时间序列光学卫星图像进行配准,以减少这种错位的影响。 在本篇博客的末尾,给出用Python配准大区域…

【TES710D-EXT】基于复旦微的FMQL10S400全国产化ARM核心模块之扩展板

板卡概述 TES710D-EXT是专门针对我司TES710D(基于复旦微FMQL10S400的全国产化ARM核心板)的测试扩展板。 FMQL10S400是复旦微电子研制的全可编程融合芯片,在单芯片内集成了具有丰富特点的四核处理器(PS)和可编程逻辑&am…

B/S架构与C/S架构的区别

B/S与C/S区别: 1、c/s架构主要应用于局域网内,而b/s架构主要应用于广域网中; 2、c/s架构一般面向相对固定的用户群,对信息安全的控制能力很强,而b/s架构对安全的控制能力相对弱; 3、B/S架构维护升级比较简单…