docker入门(二):docker的常用命令

news2024/11/23 11:26:05

文章目录

  • 前言
  • docker常用命令
    • 1 启停类/帮助 命令
    • 2镜像命令
    • 3 容器命令
  • 结语

前言

大家好,这是我学习docker系列的笔记文章,目标是掌握docker,为后续学习K8s做准备。本文列举了docker的常用命令,感兴趣的朋友可以看一下以前的文章。
上一篇: docker入门(一):在centOS虚拟机上安装docker

docker常用命令

列举常用的命令,不常用的已省略,因为我是拒绝冗余啊(看这个回顾知识点、应付面试足够了,生僻命令建议去查文档,不常见命令的用法后面会补充的)

1 启停类/帮助 命令

  • 启动docker: systemctl start docker
  • 停止docker: systemctl stop docker
  • 重启docker: systemctl restart docker
  • 查看docker状态: systemctl status docker
  • 开机启动: systemctl enable docker
  • 查看docker概要信息: docker info
  • 查看docker总体帮助文档: docker --help
  • 查看docker命令帮助文档: docker 具体命令 --help

2镜像命令

  • 列出本地主机上的镜像: docker images

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

  • 搜索镜像: docker search [OPTIONS] 镜像名字

OPTIONS说明:
–limit : 只列出N个镜像,默认25个
docker search --limit 5 redis

  • 下载镜像: docker pull 镜像名称[:TAG] #没有TAG就是最新版

  • 查看镜像/容器/数据卷所占的空间: docker system df

  • 删除镜像: docker rmi 镜像ID

删除单个
docker rmi -f 镜像ID
删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部
docker rmi -f $(docker images -qa)

面试知识点:什么docker虚悬镜像?

答:仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling image
在这里插入图片描述

3 容器命令

  1. 有镜像才能有容器,这里假设已通过 docker pull ubuntu 命令下载了ubuntu镜像,后面的命令介绍基于此镜像。

  2. 新建并启动容器:docker run [OPTIONS] ***IMAGE*** [COMMAND] [ARG...]

    OPTIONS说明(常用):有些是一个减号(短杠),有些是两个减号
    –name=“容器新名字” 为容器指定一个名称;
    -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
    -i:以交互模式运行容器,通常与 -t 同时使用;
    -t:为容器重新分配一个伪输入终端tty,通常与 -i 同时使用;
    也即启动交互式容器(前台有伪终端,等待交互);

  3. 启动交互式容器(前台命令行)

    #使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

    docker run -it centos /bin/bash

    说明:/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

  4. 列出当前所有正在运行的容器: docker ps

  5. 退出容器

·两种退出方式
·run进去容器,exit退出,容器停止
·run进去容器,ctrl+p+q退出,容器不停止

  1. 容器启停

docker start 容器ID或者容器名
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名

  1. 删除容器

删除已停止的容器
docker rm 容器ID
一次性删除多个容器实例
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

  1. 启动守护式容器(后台服务端运行) docker run -d 容器名
    好习惯:每次运行容器之后通过docker ps看一下容器是否启动成功了

问题:docker run -d centos启动centos守护容器,然后docker ps -a 进行查看, 会发现容器已经退出?
说明: 有的Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断

如后台运行nginx命令:
docker run -di --name=nginx -p 80:80 nginx
9. 查看容器日志:docker logs 容器ID
查看容器内部细节,返回JSON格式数据:docker inspect 容器ID

  1. 退出容器后重新进入(进入正在运行的容器并以命令行交互):
    docker exec -it 容器ID /bin/bash
    docker attach 容器ID 不推荐
    上述两个容器进入命令exec和attach的区别:
  • attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。
  • exec 是在容器中打开新的终端,并且可以启动新的进程 用exit退出,不会导致容器的停止。
    推荐大家使用 docker exec 命令,因为退出容器终端,不会导致容器的停止。
  1. 从容器内拷贝文件到主机上: docker cp 容器ID:容器内路径 目的主机路径
  2. 导入导出容器
  • export 导出容器的内容留作为一个tar归档文件[对应import命令]
  • import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
    案例
    docker export 容器ID > 文件名.tar
    cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

结语

一个人可以走很快,但是一群人可以走更远,大家一起抱团学习啊。
在这里插入图片描述

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

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

相关文章

处理Springboot项目启动时streamBridge.send导致的卡住卡死问题

现象 我们的Spring Boot 项目启动时&#xff0c;偶现卡死的现象&#xff0c;启动到一半卡主不动了 2023-01-16 10:23:10.338 INFO 1 --- [ restartedMain] com.hazelcast.core.LifecycleService : [172.18.0.14]:5701 [dev] [4.2.4] [172.18.0.14]:5701 is STARTED 20…

Unity脚本 --- 常用API(常用类) --- Component类和Transform类

上面这个是Unity核心类图 第一部分 --- Component类 提供了查找组件的方法&#xff08;当前物体的&#xff0c;子物体&#xff0c;父物体的&#xff09; 1.颜色&#xff08;color&#xff09;是材质&#xff08;meterial&#xff09;控制的&#xff0c;meterial&#xff08…

【FreeRTOS】在Cortex-M4开发板上移植FreeRTOS并且实现LED灯闪烁(保姆级教程)

相信有不少小伙伴手上只有M4的开发板&#xff0c;想要移植FreeRTOS&#xff1b;但是&#xff0c;网上大部分都是M3移植教程。因此&#xff0c;陷入深深的迷茫中&#xff0c;难不成只能使用仿真了&#xff1f;&#xff1f;&#xff1f;&#x1f914;因此&#xff0c;小编特意写了…

【Linux】静态库和动态库

Linux为什么不允许普通用户给目录建立硬链接呢&#xff1f; 系统层面上有.和…硬链接指向目录。假设我们是超级用户&#xff0c;允许给目录建立硬链接&#xff0c;给根目录建立硬链接&#xff0c;从根目录开始查找&#xff0c;当查找硬链接的时候就是根目录&#xff0c;这时候递…

面试官让我聊聊 MQ 的数据丢失问题,没想到水这么深。。。

目录 一、背景引入二、Kafka分布式存储架构三、Kafka高可用架构四、画图复现Kafka的写入数据丢失问题五、Kafka的ISR机制是什么&#xff1f;六、Kafka写入的数据如何保证不丢失&#xff1f;七、总结 一、背景引入 这篇文章&#xff0c;给大家聊一下写入Kafka的数据该如何保证…

Git常用命令(全局设置获取仓库)

新建仓库: 填写名称等信息&#xff0c;根据需要选择私有&#xff0c;开源等选项。 创建完成。 邀请成员&#xff1a; Git常用命令 Git全局设置 首先要做的是设置用户名和email地址。这是非常重要的&#xff0c;每次Git提交都会使用该用户信息。 设置用户信息&#xff1a; …

岁末年初捷报频传 HashData斩获多项行业殊荣

凯歌高奏辞旧岁&#xff0c;数据赋智谱新篇。 刚刚过去的2022年&#xff0c;面对充满变数的外部环境&#xff0c;HashData始终坚持以技术为本&#xff0c;持续全面创新&#xff0c;适应数字经济发展趋势&#xff0c;笃行致远&#xff0c;砥砺前行&#xff0c;积极推动企业“上…

VPS融合怪测评脚本(主体已完善,历史遗留问题解决时间未知)(VPS fusion monster evaluation script)

ecs 原仓库链接&#xff1a;https://github.com/spiritLHLS/ecs 支持系统&#xff1a;Ubuntu 18&#xff0c;Debian 8&#xff0c;centos 7&#xff0c;Fedora&#xff0c;Almalinux 8.5, Arch 融合怪测评脚本 bash <(wget -qO- --no-check-certificate https://gitlab.…

Sealer 0.9 :帮助集群和分布式应用实现 Build、 Share、Run

作者&#xff1a;sealer 社区 新春之际&#xff0c;很高兴在此时宣布 Sealer [ 1] 0.9 版本的正式发布。Sealer 是一款致力于探索面向分布式应用的快速打包、交付和运行的解决方案。2021 年5月 Sealer 项目正式开源&#xff1b;短短一年时间&#xff0c;Sealer 在 2022 年 4 月…

人工智能图像识别四大算子

文章目录背景引入图像识别发展简介边缘检测算法*Prewitt算子**Sobel算子**Laplace算子**Conny算子** 文末寄语*背景引入 图像识别是当今计算机科学最热门的研究方向之一。随着科学技术的发展和人类社会的不断进步&#xff0c;图像识别技术在很多行业得到了广泛的应用。本章除了…

【单链表】数据结构,详解单链表,java实现代码

前言&#xff1a; 大家好&#xff0c;我是良辰丫&#x1f353;&#x1f353;&#x1f353;&#xff0c;今天我和大家一起了解一下数据结构中的链表&#xff0c;链表&#xff0c;顾名思义是用链子把一个个数据串连起了的&#xff0c;那么链表和顺序表又有什么不同呢&#xff1f;…

mysql存储过程基本语法

本文来说下mysql存储过程基本语法 文章目录基本语法使用实例变量的使用变量定义declare语句变量赋值用户变量存储过程的参数in 输入参数out 输出参数inout输入输出参数本文小结基本语法 存储过程就是具有名字的一段代码&#xff0c;用来完成一个特定的功能。创建的存储过程保存…

2022年全球白帽常用工具排行榜TOP 10

虽然此时还未到2022年年底&#xff0c;但并不妨碍我们整理一份2022年全球白帽常用的工具榜单&#xff0c;希望能给白帽们和企业安全人员们带来一定的借鉴和参考。 一方面&#xff0c;工具的重要性不言而喻&#xff0c;各大SRC的白帽们也有深刻的切身体会。一个好用且靠谱的工具…

带模糊加工时间的柔性作业车间调度理论和GA复现(python)

文章目录1.模糊作业车间1.1 模糊数1.2 三角模糊数操作1.3 模糊甘特图2.FJSP模糊加工时间GA2.1 GA算法设置2.2 python代码2.3 测试结果1.模糊作业车间 1.1 模糊数 论域X上的模糊集合A由隶属度函数u(x)表示&#xff0c;u(x)取值[0,1]。如果A为三角模糊数&#xff0c;A可以表示为…

软件测试复习07:软件测试过程

作者&#xff1a;非妃是公主 专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录测试计划测试设计测试执行测试监控测试结束软件测试过程主要有5个阶段&#xff1a;测试计划、测试设…

《深入浅出计算机组成原理》学习笔记 Day3

ELF和静态链接1. 程序执行&#xff1a;编译、链接和装载2. ELF 格式和链接3. 总结延伸参考1. 程序执行&#xff1a;编译、链接和装载 有这么两个C文件&#xff1a; \\ add.c int add(int a, int b) {return a b; }\\ test.c #include <stdio.h> int main() {int a 1;…

JVM学习(三):聊聊内存泄漏(memory leak)

一、什么是内存泄漏&#xff08;memory leak&#xff09;可达性分析算法来判断对象是否是不再使用的对象&#xff0c;本质都是判断一个对象是否还被引用。那么对于这种情况下&#xff0c;由于代码的实现不同就会出现很多种内存泄漏问题&#xff08;让JVM误以为此对象还在引用中…

最新光速配置VScode运行C/C++教程(W11适用)

文章目录1.下载MingW编译器&#xff1a;2.解压7z压缩文件方法3.VScode配置4.下面看看成果&#xff1a;1.下载MingW编译器&#xff1a; 下载地址 往下面拖找到上面这个东西-下载最新版本 2.解压7z压缩文件方法 7z解压程序官网 下它&#xff01;相信这个时候在装的一般都是6…

【ubuntu | cuda】ubuntu22.04 安装cuda11.3方法

every blog every motto: You can do more than you think. 0. 前言 ubuntu22.04 安装cuda11.3方法记录 1. 正文 1.1 方法一&#xff1a; https://developer.nvidia.com/cuda-11.3.0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&…

服务网格领域的百花齐放,是否存在一个更优解?

作者lingsamuel&#xff0c;API7.ai 云原生技术专家&#xff0c;Apache APISIX Committer。 作者林志煌&#xff0c;API7.ai 技术工程师&#xff0c;Apache APISIX contributor。 服务网格是一种技术架构&#xff0c;它用于管理微服务系统中各个服务之间的通信&#xff0c;旨在…