学习docker第二弹------基本命令[帮助启动类命令、镜像命令、容器命令]

news/2024/12/21 20:07:08/

docker目录

  • 前言
  • 基本命令
    • 帮助启动类命令
    • 镜像命令
      • 查看所有的镜像 -a
      • 查看镜像ID -q
      • 在仓库里面查找redis
      • 拉取镜像
      • 查看容器/镜像/数据卷所占内存
      • 删除一个镜像
      • 删除多个镜像
    • 容器命令
      • 拉取容器
      • 查看容器信息
      • 查看所有的容器信息
      • 显示一条
      • 只显示容器ID
      • 退出容器
        • 退出容器,但容器不停止
        • 退出容器,容器停止
      • 启动已经停止的容器
      • 重启已经停止的容器
      • 停止容器
      • 删除已停止的容器
      • 强制删除容器
      • 查看日志
      • 查看容器内运行的进程
      • 查看容器内部细节
      • 进入正在运行的容器并以命令行交互
      • 从容器内拷贝内容到主机上
      • 导入和导出容器
  • 后记

前言

在第一弹学习中,我们学会了docker的安装,成功运行了dockerdocker就像它的图标一样,是一个鲸鱼,我们需要在docker上面放集装箱(就是创建容器,比如说redis,app啥的昂),docker是基于Linux内核的,因此我们在VMware Workstation上使用centos镜像学习docker

众所周知java的三要素是封装、继承和多态,docker同样也有三要素,镜像、容器和仓库。这里的镜像就像是模板,比如redis、centos等的镜像,我们是不是先拉下来,然后在镜像上面操作。容器就来存放镜像,一定要注意确保容器创建成功,别一天到晚忙忙碌碌的搬东西到箱子里面,结果发现箱子不在,尊嘟会笑得肚子疼。仓库就是我们拉取镜像的地方。

基本命令

帮助启动类命令

terminal 小tips,ctrl++就会放大字迹。

docker_9">停止docker服务

systemctl stop docker

在这里插入图片描述

docker_16">查看docker状态

systemctl status docker

在这里插入图片描述

docker_22">启动docker

systemctl start docker
systemctl status docker

在这里插入图片描述

docker_29">重启docker

systemctl restart docker

在这里插入图片描述

docker_35">开机启动docker

systemctl enable docker

查看概要信息

docker info

在这里插入图片描述

查看总体帮助文档

这种帮助文档最适合我们这种小白,要学会自己学习,这句话其实是对我自己说的,最讨厌看这种玩意儿了(掌嘴)不,我最喜欢看这种漂亮的文字了(洗脑ing)

docker --help

在这里插入图片描述

查看命令帮助文档

docker run --help

查看run这个命令的帮助文档,记得run吧,我们刚开始运行的hello-world就是run帮助我们的呀!

在这里插入图片描述
ok,到这里我们的帮助启动类的命令就结束了,接下来看看我们的镜像命令啦,还记得docker三大元素嘛,再复习一次:镜像、容器和仓库

镜像命令

docker images

在这里插入图片描述
这里解释以下这个标题的内容,repository仓库,tag表示版本标签,如果我们run的时候没有加上这个tag标签,默认就是拉取最新的,image ID顾名思义就是我们镜像的ID了,created创建时间,size就是镜像的大小。

查看所有的镜像 -a

docker images -a

在这里插入图片描述

查看镜像ID -q

在这里插入图片描述

在仓库里面查找redis

docker search redis

在这里插入图片描述

查看仓库某个镜像的前五个,使用了--limit

docker search --limit 5 redis

在这里插入图片描述

拉取镜像

冒号后面是版本号,若是不写版本号,默认是最新版latest哈

docker pull redis:6.0.8

在这里插入图片描述

查看容器/镜像/数据卷所占内存

docker system df

在这里插入图片描述

删除一个镜像

docker rmi [-f] 镜像名字/镜像ID

rmi是remove image,这个中括号表示可选项,-f就是强制删除的意思(force)

在这里插入图片描述

在这里插入图片描述
删除成功了。

删除多个镜像

docker rmi [-f] 镜像名1:TAG,镜像名2:TAG

穿插一个课外的面试题叭:
docker虚悬镜像是什么?
答:仓库名和镜像名都是None的镜像,dangling images
这种镜像建议删除

终于可以到我们的容器命令,是不是对容器(集装箱)挺好奇的,我也是!让我们揭开它神秘的面纱叭!

容器命令

Docker必须部署在Linux上,再强调一遍撒。

拉取容器

docker run ubuntu

在这里插入图片描述
都知道,我们执行命令都是有参数可以选择的,接着我们看几个我感觉用的比较多的,还有一些就以后慢慢接触慢慢用到咱们继续补充。

docker run -it ubuntu /bin/bash

在这里插入图片描述
在这里插入图片描述

查看容器信息

再另外开一个终端,因为之前的终端我们在和ubuntu交互了

docker ps

在这里插入图片描述

docker run -d ubuntu bash

在这里插入图片描述
在这里插入图片描述
运行redis就可以,因为它是可以后台运行的容器啦!

-d 参数是守护式容器,就是说后台默默守护默默运行的这种,但是有些镜像是不可以的,比如说不工作的镜像,就会创建后马上被杀死

查看所有的容器信息

所有创建过的,无论是否正在运行

docker ps -a

在这里插入图片描述

显示一条

docker ps -n 1

只显示容器ID

docker ps -q

在这里插入图片描述

退出容器

退出容器,但容器不停止
ctrl+p+q
退出容器,容器停止
exit

启动已经停止的容器

docker start 容器ID/容器名称

重启已经停止的容器

docker restart 容器ID/容器名称

停止容器

docker stop 容器ID/容器名称

删除已停止的容器

docker rm 容器ID/容器名称

强制删除容器

docker rm -f 容器ID/容器名称

查看日志

docker logs 容器ID

查看容器内运行的进程

docker top 容器ID

查看容器内部细节

docker inspect 容器ID

进入正在运行的容器并以命令行交互

docker exec -it 容器ID /bin/bash

一般我们使用这一个

docker attach 容器ID

exec这个使用exit退出后,进程不会停止,但attach方法exit退出了,进程会停止。

从容器内拷贝内容到主机上

因为有时候怕东西被误删除了,出于安全机制,所以咱们会有一个备份的操作,将重要的东西放到主机上,当然也可以复制整个镜像文件。

docker cp 容器ID:容器内路径 目的路径

导入和导出容器

导出

docker export 容器ID>abcd.tar

abcd.tar就是命名,可以自己命名的,如果不指定的话,默认就是当前目录
导出

cat abcd.tar | docker import-包名/镜像用户/镜像名:版本

后记

记一下,mysql也是的,我的root的账户,密码是123456,我怕我忘记了,到时候来这里找一下。
刚刚写博客被同实验室的人看见了,BB啊,如果文档对您有用的话,记得给我点个赞赞,这可是我写作的动力之一,你们可是很重要的呢!


http://www.ppmy.cn/news/1534078.html

相关文章

第四周做题总结_数据结构_栈与应用

id:144 A. 前驱后继–双向链表(线性结构) 题目描述 在双向链表中,A有一个指针指向了后继节点B,同时,B又有一个指向前驱节点A的指针。这样不仅能从链表头节点的位置遍历整个链表所有节点,也能从链表尾节点…

Tensorflow2.0

Tensorflow2.0 有深度学习基础的建议直接看class3 class1 介绍 人工智能3学派 行为主义:基于控制论,构建感知-动作控制系统。(控制论,如平衡、行走、避障等自适应控制系统) 符号主义:基于算数逻辑表达式,求解问题时先把问题描述为表达式…

【需求分析】软件系统需求设计报告,需求分析报告,需求总结报告(原件PPT)

第1章 序言 第2章 引言 2.1 项目概述 2.1.1 项目背景 2.1.2 项目目标 2.2 编写目的 2.3 文档约定 2.4 预期读者及阅读建议 第3章 技术要求 3.1 软件开发要求 3.1.1 接口要求 3.1.2 系统专有技术 3.1.3 查询功能 3.1.4 数据安全 3.1.5 可靠性要求 3.1.6 稳定性要求 3.1.7 安全性…

2024年三个月网络安全(黑客技术)入门教程

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、…

基于SpringBoot+Vue+MySQL的考勤管理系统

系统展示 管理员界面 用户界面 系统背景 随着企业规模的扩大和管理的精细化,传统的考勤方式已经无法满足现代企业的需求。纸质签到、人工统计不仅效率低下,还容易出错。因此,开发一套基于SpringBootVueMySQL的考勤管理系统显得尤为重要。该系…

CGLIB原理

CGLIB(Code Generation Library)是一个强大的字节码生成库,用于在运行时生成代理类。CGLIB 实现了动态代理,与 Java 的 Proxy 不同,它不要求目标类实现接口,而是通过生成目标类的子类来实现代理。这使得 CG…

MES(软件)系统是什么?MES系统为何如此重要呢?

一、MES系统的定义与功能 MES系统是一套面向制造企业车间执行层的生产信息化管理系统,它涵盖了多种功能模块,包括但不限于: 订单管理:处理客户订单,确保生产需求与市场需求相匹配。生产调度:根据订单和生…

一个IP可以支持几种网络协议?

在计算机网络的世界中,IP地址(Internet Protocol Address)是用于标识网络设备的基本标识符。IP地址本身并不是一种网络协议,而是网络层协议中的关键组件,它通过不同的网络协议来完成数据传输。为了理解一个IP地址能够支…