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

news2024/11/24 19:32:07

在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/579253.html

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

相关文章

【历史上的今天】4 月 27 日:Tumblr 上线;施乐推出了 Star 工作站;第一台安德伍德打字机诞生

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 27 日,在 1791 年的今天,摩斯电码的共同发明者、电报发明者塞缪尔摩斯(Samuel Morse)诞生。摩斯最开始是一…

基于springboot + vue 的学生成绩管理系统

基于springboot vue实现的学生成绩管理系统 主要模块: 1)学生模块:我的成绩、成绩统计、申述管理、修改密码 2)教师模块:任务管理、对学生班级任务安排、班级学生的成绩查看、申述管理 3)管理员模块&…

Vue自定义插件的使用

通过 Vue 实例绑定方法: 在 plugins.js 文件中创建 filter 过滤器,定义一个只返回前四个字符的方法。 export default {install(Vue){// 定义过滤器Vue.filter(mySlice,function(value){return value.slice(0,4);})} } 由于我们之前在 main.js 文件中引入…

六级备考20天|CET-6|翻译练习|真题·红楼梦|8:50~9:08+11:33~12:00

目录 1 中文 2 英文​ 3 解析 4 订正 ​ 1 中文 漏翻译:具有很强的艺术感染力! 2 英文 3 解析 tell 讲述 tragic love story 悲剧性爱情故事 own painful personal experience 自己痛苦的个人经历 major/minor characters 主要/次要人物 be viv…

SSH爆破攻击及应急响应/事件处置

提示:本文是我做的笔记,有问题可以留言 目录 前言一、什么是SSH?二、开始前的准备1.扫描2.准备爆破3.准备ssh登录登陆后的准备nc反弹 应急响应/事件处置1.查看网络连接情况2.查看守护进程3.删除,结束异常后门4.修改密码 总结 前言…

day40_servlet

今日内容 零、 复习昨日 一、注解 二、改造项目 三、请求转发 四、重定向 零、 复习昨日 一、注解(Annotation) 注解,又称为注释.它是给程序看的注释. JDK1.5后才出现的,作用是为了提高开发效率的,如何做到?(一个注解可以简化很多很多代码…) 常见注解: Override 1.1 自定义注…

Linux基础开发工具之软件包管理器

目录 前言 1.什么是软件包 2.软件下载的三种方式 3. Linux软件生态 4. 使用yum安装软件 5.yum源的相关介绍 总结: 前言 Linux作为一款操作系统,其自然也和我们其他的操作系统一样需要安装对应得软件去满足我们的需求,因此为了更好的下载…

ICV报告: ADAS SoC市场规模将在2024年迎来较大突破

随着先进驾驶辅助系统(ADAS)的出现和对于自动驾驶的追求,汽车行业正在经历快速转型。这些技术进步的核心是ADAS SoC,它是实现多个功能集成于单一平台的关键组件。ADAS SoC已经成为智能汽车的重要驱动因素,彻底改变了安…

ArduPilot开源代码之H743+BMI270x2+ChibiOS配置适配

ArduPilot开源代码之H743BMI270x2ChibiOS配置适配 1. 源由2. 配置适配2.1 bootloader配置2.2 flight controller配置 3. 4.3.6固件编译Step 1: 获取源代码Step 2: 准备编译环境Step 3: 复制配置文件Step 4: 编译bootloaderStep 5: 编译飞控 4. 基础配置4.1 机型配置4.2 IMU校准…

通过python采集lazada商品详情数据接口,支持多站点。

为了采集Lazada商品详情,您可以使用Python的网络爬虫库(例如BeautifulSoup、Scrapy等)来获取页面内容。以下是基本步骤: 安装所需的Python库(例如requests、BeautifulSoup等)。使用requests库发送GET请求并…

C/C++开发,libiec61850库学习及运用

目录 一、libiec61850库下载编译 1.1 下载 1.2 linux编译: 1.3 win编译 二、案例编译测试 2.1 CMakeLists.txt调整(server_example_goose) 2.2 模型static_model.h/static_model.cpp生成 2.3 案例编译(server_goose) 2.4 客户端编译 2.5 运行测试 一、libiec61850…

SAP-MM 条件类型字段解析

01、“定价类型”:定义此条件类型的代码和描述,代码不能重复,描述可更改,根据实际需要,条件类型可定制; 02、“存取顺序”:表示此条件类型在定价时,要到存取顺序号定义的条件表中读…

学C的第二十二天【深度剖析数据在内存中的存储:1. 数据类型介绍;2. 整型在内存中的存储】

相关代码gitee自取:C语言学习日记: 加油努力 (gitee.com) 接上期:学C的第二十一天【初阶测评讲解:1. 计算递归了几次;2. 判断 do while 循环执行了几次;3. 求输入的两个数的最小公倍数;4. 将一句话的单词进…

day39_servlet

今日内容 零、复习昨日 一、接收请求 二、处理响应 三、综合案例 零、复习昨日 见晨考 一、接收请求 浏览器发出请求,经过web.xml映射匹配,找到Servlet对应的方法(doGet/doPost),接收请求数据,可以接收请求中的请求行,请求头,请求正文,具体流程如下 浏览器发出请求 …

OpenAI ChatGPT API + FaskAPI SSE Stream 流式周转技术 以及前端Fetch 流式请求获取案例

先填坑,一贯习惯 nginx如果要支持SSE,要调整一些参数 conf配置文件,AI给的,具体自己没搭,应该是正确的 nginx worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_typ…

Ubuntu下编译运行MicroPython Unix版本

文章目录 github拉取源码更新模块编译运行 github拉取源码 到Github(https://github.com/micropython/micropython)上下载源码 终端输入,如果提示识别不到gh命令,就sudo apt-get install gc安装一下。 再根据提示在终端里登录自己的github账号。 再次…

Hystrix 服务熔断

书籍,人,借阅服务之间相互调用, 高度耦合, 一旦一个服务故障, 其他服务会雪崩, 和多米诺骨牌一样 Hystrix 熔断器, 保险丝 服务降级 提供补救措施发给请求者, 服务可用, 能力下降了 borrow-service 导入依赖 <dependency><groupId>org.springframework.cloud&l…

linux kernel pwn 常用结构体

tty 设备结构体 tty 设备在 /dev 下的一个伪终端设备 ptmx 。 tty_struct&#xff08;kmalloc-1k | GFP_KERNEL_ACCOUNT&#xff09; tty_struct 定义如下 。 /* tty magic number */ #define TTY_MAGIC 0x5401struct tty_struct {int magic;...const struct tty…

python学习-基础知识总结

&#xff08;一&#xff09;基础语法 1.1、注释 程序添加注释&#xff0c;可以用来解释程序某些部分的作用和功能&#xff0c;提高程序的可读性&#xff0c;注释有两种形式&#xff1a; 单行注释&#xff1a;#多行注释&#xff1a;单引号&#xff08;注释内容&#xff09;或双…

【剑指offer】数据结构——字符串

目录 数据结构——字符串直接解【剑指offer】05. 替换空格【剑指offer】17. 打印从1到最大的n位数【剑指offer】20. 表示数值的字符串【剑指offer】37. 序列化二叉树【剑指offer】50. 第一个只出现一次的字符【剑指offer】58. 翻转单词顺序【剑指offer】58.2 左旋转字符串【剑指…