Docker基础篇之常用命令

文章目录

    • 1. 帮助启动类命令
    • 2. 镜像命令
    • 3. 容器命令
    • 4. 总结

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 [options]:列出本地主机上的所有镜像

在这里插入图片描述

Repository:表示镜像的仓库源
Tag:镜像的标签
Image Id:镜像ID
Created:镜像创建的时间
Size:镜像的大小

同一个仓库源可以有多个Tag版本,代表这个仓库源的不同个版本,我们使用Repository:Tag来定义不同的镜像。
它的options选项说明如下:

-a:列出本地所有的镜像
-q:只显示镜像的ID
  • docker search [options]:远程库中查找某个镜像的名称
    在这里插入图片描述

Name:镜像名称
Description:镜像说明
Stars:点赞数
Official:是否是官方的
Automated:是否是自动构建的

它的options选项说明如下:

--limit:只列出N个镜像,默认是15个
docker search --limit 5 redis
  • docker pull 某个xxx镜像名字:将远程库的某个镜像拉取到本地库中

该命令有两个写法:

docker pull 镜像名称[:TAG] 指定具体版本
docker pull 镜像名称  默认下载最新的
  • docker system df:查看镜像/容器/数据卷所占用的空间

在这里插入图片描述

  • docker rmi 某个xxx镜像的名字ID

删除单个:

docker rmi -f 镜像ID #-f表示强制删除

删除多个:

docker rmi -f 镜像名1:Tag 镜像名2:Tag

删除全部

docker rmi -f $(docker images -qa)

面试题:谈谈docker虚悬镜像是什么?
答:首先虚悬镜像是仓库名和标签都是<none>的镜像,俗称为虚悬镜像(dangling image)

3. 容器命令

首先要知道,有镜像才能创建容器,所以在创建容器之前本地库需要有对应的镜像。

  • 首先准备ubuntu镜像
docker pull ubuntu

在这里插入图片描述

  • 新建并启动容器
docker run [options] image [command][arg...]

options选项说明:

–name:容器的新名字
-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i:以交互模式运行容器,通常和-t同时使用
-t:为容器重新分配一个伪输入终端,通常和-i一起使用(-t -i也即启动交互式容器—前台有终端,等待交互)
-P:随机端口映射
-p:指定端口映射

启动交互式容器
在这里插入图片描述
上面就使用ubuntu以交互模式启动类一个容器,在容器内执行/bin/bash命令

  • 列出正在运行的所有容器
docker ps [options]

在这里插入图片描述

options选项说明:

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

  • 退出容器

容器有两种退出方式:

exit:run进入容器,exit退出,容器停止(容器内部操作)
ctrl+p+q:run进入容器,ctrl+p+q退出,但是容器不停止(容器内部操作)

  • 启动已经停止运行的容器
docker start 容器ID或者容器名

在这里插入图片描述

  • 重启容器
docker restart 容器ID或者容器名
  • 停止容器
docker stop 容器ID或者容器名
  • 强制停止容器
docker kill 容器ID或者容器名
  • 删除已经停止的容器
docker rm 容器ID 
  • 其它重要知识点

有镜像才能创建容器,这里下载一个redis镜像进行演示

启动守护式容器

在大部分场景下,我们希望docker的服务是在后台运行的,我们可以通过-d指定容器的后台运行模式

docker run -d 容器名

注意:我们使用docker run -d ubuntu(对于ubuntu)后,然后使用docker ps -a进行查看,可以发现容器已经退出,这里涉及很重要的一点说明,Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令,就是会自动退出的。这是docker的机制问题,比如你的web容器,以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可,例如service nginx start,但是,这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为他觉得自己没事做。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常用的就是命令行模式,表示我还有交互操作。

而redis这类服务就适合后台运行。

docker run --name testredis -d redis:6.2.14

在这里插入图片描述

查看容器的日志

docker  logs 容器id
docker  logs 4f6d5fb949e88925f72c21f545625645383426854a430a0940e803f53d87d3ce

在这里插入图片描述

查看容器内运行的进程

docker top 容器ID
docker top 4f6d5fb949e88925f72c21f545625645383426854a430a0940e803f53d87d3ce

在这里插入图片描述

查看容器内部细节

docker inspect 容器ID
docker inspect 4f6d5fb949e88925f72c21f545625645383426854a430a0940e803f53d87d3ce

在这里插入图片描述
进入正在运行的容器并以命令行交互

docker exec -it 容器ID bashShell 
docker attach 容器ID

上诉两个命令的区别是,attach是进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器停止。exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。

从容器内部拷贝文件到主机上

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

导入和导出容器(容器的备份和恢复)

export :导入容器的内容留作为一个tar归档文件[对应import命令]
import:从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]docker export 容器ID>文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

在这里插入图片描述

4. 总结

在这里插入图片描述

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

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

相关文章

MER 2024 第二届多模态情感识别挑战赛

多模态情感识别是人工智能领域的一个活跃研究课题。它的主要目标是整合多种模态来识别人类的情绪状态。当前的工作通常为基准数据集假设准确的情感标签&#xff0c;并专注于开发更有效的架构。然而&#xff0c;现有技术难以满足实际应用的需求。 清华大学陶建华教授联合中国科学…

课时138:变量进阶_变量实践_综合案例

2.1.3 综合案例 学习目标 这一节&#xff0c;我们从 免密认证、脚本实践、小结 三个方面来学习 免密认证 案例需求 A 以主机免密码认证 连接到 远程主机B我们要做主机间免密码认证需要做三个动作1、本机生成密钥对2、对端机器使用公钥文件认证3、验证手工演示 本地主机生成…

预热 618,编程好书推荐——提升你的代码力

文章目录 &#x1f4cb;前言&#x1f3af;编程好书推荐&#x1f4d8; Java领域的经典之作&#x1f40d; Python学习者的宝典&#x1f310; 前端开发者的权威指南&#x1f512; 并发编程的艺术&#x1f916; JVM的深入理解&#x1f3d7; 构建自己的编程语言&#x1f9e0; 编程智…

WJ2EDGKA-5.08-8P功能和参数介绍及PDF资料

WJ2EDGKA-5.08-8P 是一款接线端子&#xff0c;以下是它的主要功能和参数介绍&#xff1a; 间距: 5.08mm&#xff08;0.2英寸&#xff09;&#xff0c;这是指相邻针脚之间的中心距离。 针脚数: 8个针脚&#xff08;1X8Pins&#xff09;&#xff0c;这意味着该端子可以连接8根导线…

基于Zynq 7000 SoC的迁移设计

基于Zynq 7000 SoC的迁移设计 Vivado IDE工具使用IP集成器进行嵌入式开发。各种IP Vivado IDE IP目录中提供&#xff0c;以适应复杂的设计。您也可以添加 自定义IP到IP目录。 您可以将基于Zynq 7000平台处理器的设计迁移到Vivado design Suite中 使用以下步骤。 1.生成系统基础…

知攻善防应急响应靶机训练-Web3

前言 本次应急响应靶机采用的是知攻善防实验室的Web-3应急响应靶机 靶机下载地址为&#xff1a; https://pan.quark.cn/s/4b6dffd0c51a 相关账户密码 用户:administrator 密码:xj123456xj123456 解题过程 第一题-攻击者的两个IP地址 直接查看apache的log日志搜索.php 发现…

三维大场景管理-3Dtiles规范

简介 &#xff1a; 这篇文章都是三年前写的了&#xff0c;一直在笔记库存中&#xff0c;今天把他放出来。主要是讲Cesium 的3Dtiles 格式&#xff0c;当然3Dtiles主要是解决场景管理大场景的LOD实现的问题&#xff0c;不管是剔除渲染性能优化之Culling 剔除或者 LOD 、3Dtiles…

SSM基于微信小程序的校园表白墙的设计与实现-计算机毕业设计源码58219

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;校园表白墙微信小程序被用户普遍使用&#xff0c;为方便用…

Java面试八股之自旋是什么意思

Java中的自旋是什么意思 自旋是多线程编程中的一种同步机制&#xff0c;尤其在Java中与锁的实现密切相关。当一个线程尝试获取某个锁&#xff08;如内置锁或显式锁&#xff09;时&#xff0c;如果锁已被其他线程持有&#xff0c;通常的做法是将该线程置于阻塞状态&#xff0c;…

图形学概述

图形学应用 游戏 游戏的画面好坏如何鉴定呢&#xff1f; 看游戏画面是否够亮&#xff1a;渲染中全局光照的好坏 《只狼》 为什么卡通游戏画面看起来是卡通的呢&#xff1f; 《无主之地3》 这些都是图形学需要着手解决的问题 电影 电影《黑客帝国》的特效也是通过计算机…

HTTPS加密过程

今天我们说https具体工作原理。 HTTPS概念 HTTPS是一种网络协议&#xff0c;传统的HTTP是明文传输&#xff0c;非常 不安全&#xff0c;所以HTTPS是基于HTTP基础上进行加密传输内容。 HTTPS使用加密传输方式 第一种是非对称加密&#xff0c;是前期建立连接时候使用的数据加密…

Unity 直线间隔放置物体

直线间隔放置物体 0. 新建一个空物体&#xff0c;挂上脚本ZYF_QuickPlaceObj 设置 间隔距离 和 预制体在Scene中拖动即可按间隔距离实例化物体物体的朝向始终朝向统一方向&#xff0c;并且可以在Scene中拖拽更改 传送门

QML-1- qml简介及项目创建

文章目录 1. QML 简介2. 项目创建3. 目录结构4. CMakeLists.txt 简单介绍5. 运行demo 1. QML 简介 根据官网介绍&#xff0c;qml 为qt一个模块&#xff0c;使用Qml语言开发应用程序和库提供了一个框架。它定义并实现了语言和引擎基础结构&#xff0c;并提供了一个API&#xff…

jQuery事件导读+其它方法

jQuery 事件导读一、事件注册二、事件处理1.内容2.例子&#xff0c;微博绑定事件3.off解绑事件4.自动触发事件 三、事件对象 其他方法一、拷贝对象二、多库共存三、插件 事件导读 一、事件注册 单个事件叫注册&#xff0c;多个事件叫处理 二、事件处理 1.内容 2.例子&#…

今日上新——FCP

今年2月&#xff0c;我们FCC-E产品全新上线了专有D区&#xff0c;专门满足用户对高性价比的稀缺大机型需求。 产品研发组的小伙伴们根本停不下来~ 才几个月&#xff0c;我们又又上新了&#xff01; 今天的新品是FCP&#xff08;fastone Compute Platform&#xff09;&#x…

VMware ESXi中安装Proxmox VE

0、巴拉巴拉 前几天某行业HW&#xff0c;闲暇的时候几个技术人员聊天&#xff0c;臭味相投的聊到自己玩的东西。有个玩家说家里用工作站安装Proxmox VE&#xff0c;然后在上面安装软路由、安装NAS。我以前一直想玩玩&#xff0c;没有付诸行动&#xff0c;所以也想弄个集中的方案…

分享目前堪称最好用的车机桌面app,支持画中画模式!

好用的车机桌面了&#xff0c;支持悬浮画中画&#xff01; 如果你想改变单调的车机桌面&#xff0c;那么这篇文章你不要错过了&#xff01;支持地图悬浮、画中画的车机桌面&#xff0c;不要错过&#xff01; 今天阿星给大家分享3款好用、好看的大屏桌面软件&#xff0c;重要的…

如何在Namecheap上购买域名

文章目录 如何在Namecheap上购买国外域名&#xff0c;话不多说直接上步骤↓1&#xff1a;注册Namecheap账号2&#xff1a;选购域名3&#xff1a;如何付款4&#xff1a;付款购买域名5&#xff1a;总结 如何在Namecheap上购买国外域名&#xff0c;话不多说直接上步骤↓ 原文链接…

学习双向链表带哨兵demo

定义 在计算机科学中&#xff0c;链表是数据元素的线性集合&#xff0c;其每个元素都指向下一个元素&#xff0c;元素存储上并不连续。 双向链表&#xff0c;每个元素知道其上一个元素和下一个元素。 以下为示例代码&#xff1a; package com.tfq.arithmetic.linkedlist;imp…

Flask 蓝图路由的模块化开发

基于 Flask 蓝图路由的模块化开发 1. 编程目标 为了提高Flask应用的可维护性和可扩展性&#xff0c;我们通过使用Flask的蓝图(Blueprint)功能&#xff0c;可以将不同的功能模块拆分到独立的文件中&#xff0c;方便后续的开发和维护。 2. 项目结构 项目结构树如下&#xff1…