Docker Command
小试牛刀
# 查看docker版本
docker -v
docker --version
# 查看帮助
docker --help
# 永远的Hello World
docker run hello-world

镜像操作
查看本地已有的镜像
docker images
-a :列出本地所有的镜像(含中间映像层)
-q :只显示镜像ID
--digests :显示镜像的摘要信息
--no-trunc :显示完整的镜像信息
查找镜像
# 没有指定TAG时,默认为latest标签
# 如果获取到的镜像比之前拉取的新,原先的镜像tag会变成none
docker search NAME:[TAG]
--no-trunc : 显示完整的镜像描述
-s : 列出收藏数不小于指定值的镜像。
--automated : 只列出 automated build类型的镜像# for example
docker search mysql
拉取镜像
docker pull NAME:[TAG]
docker pull mysql # 拉取mysql镜像,标签默认latest
docker pull mysql:tag # 拉取指定tag的mysql镜像
删除镜像
docker rmi image-id # 通过镜像ID删除镜像,这种方式失败的话用镜像标签
docker rmi mysql:tag # 通过镜像标签删除镜像
# 如果一个镜像对应了多个tag,只有当最后一个tag被删除时,镜像才被真正删除
docker rmi -f 镜像ID/镜像名
docker rmi -f 镜像名1:TAG 镜像名2:TAG
docker rmi -f $(docker images -qa) # 删除全部
更改镜像名和标签
docker tag NAME[:tag] NEW_NAME[:tag]
docker tag 镜像id NEW_NAME[:tag]
查看镜像详情
docker inspect 镜像名 # 查看镜像详细信息docker history <image> # 显示镜像的构建历史,即Dockerfile的执行过程
提交镜像
docker commit提交容器副本使之成为一个新的镜像
docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名] -p=true 提交时暂停容器运行
导入导出镜像
docker save -o xxx.tar 容器:标签或容器id # 保存容器
docker load < xxx.tar # 载入容器
将本地的镜像上传远程镜像仓库
- 需要先登录Docker远程镜像仓库,默认登录官方仓库:DockerHub
docker login # 然后输入账号密码
docker push 镜像名:标签
docker logout # 登出
- 也可以使用阿里云镜像服务


# 推送镜像
$ sudo docker login --username=xxx registry.cn-shenzhen.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xxx/yyy:[镜像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/xxx/yyy:[镜像版本号]
# 拉取镜像
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/xxx/yyy:[镜像版本号]
容器操作
docker run
docker run [options] image-name
# --name container-name,为容器起个名字,必须唯一
# -i 打开容器的标准输入
# -t 为容器分配一个命令行虚拟终端,centos默认/bin/bash
# -d 后台运行
# -p 主机端口:容器端口
# -P Publish all exposed ports to random ports
# --rm 容器退出之后销毁
# 服务类后台运行
docker run -d -p 80:80 nginx
docker run -d -P nginx
# 工具类打开shell窗口
docker run -it -rm busybox# exit之后容器还在
docker run -it alpine# exit之后容器销毁
docker run --rm -it alpine

基本命令
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器,包括运行和停止docker start container-name/container-id # 启动一个已停止的容器
docker stop container-name/container-id # 停止正在运行的容器
docker restart container-name/container-id # 重启指定容器docker pause container-id # 处于暂停状态的容器不会占用CPU资源
docker unpause container-id
docker kill container-name/container-id # 强制停止指定容器docker rm container-id # 删除指定容器,必须先停止才能删除,-f可以强制删除
docker rm -v $(docker ps -aq -f status=exited)docker rename container-id new-container-name # 容器重命名docker top 容器ID # 查看容器内运行的进程
docker inspect 容器ID # 查看容器内部细节docker logs container-name/container-id # 查看容器日志
docker logs -f -t --tail 容器ID
# -t 是加入时间戳
# -f 跟随最新的日志打印
# --tail 数字 显示最后多少条
进入容器
# 重新进入容器启动命令的终端
# 当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
docker attach container-id# 重新正在后台运行的容器,并打开新的终端(推荐)
docker exec -it container-id /bin/bash
退出容器
exit # 容器停止退出
Ctrl+P and Ctrl+Q # 容器不停止退出
容器和主机之间复制文件
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATHCopy files/folders between a container and the local filesystemUse '-' as the source to read a tar archive from stdin
and extract it to a directory destination in a container.
Use '-' as the destination to stream a tar archive of a
container source to stdout.Options:-a, --archive Archive mode (copy all uid/gid information)-L, --follow-link Always follow symbol link in SRC_PATH
导入导出容器快照
docker export CONTAINER ID > xxx.tar
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
容器数据卷
- 容器数据持久化
# 两个目录如果不存在,会自动创建
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
# 两个目录的数据改动会实时同步
# 容器退出后,主机修改的数据会在容器重新启动后同步# 查看数据卷是否挂载成功
docker inspect 容器ID
- 容器间传递共享 --volumes-from
docker run -it --name dc02 --volumes-from dc01 lee/centosfromfile
相关文章:
Docker Command
小试牛刀 # 查看docker版本 docker -v docker --version # 查看帮助 docker --help # 永远的Hello World docker run hello-world镜像操作 查看本地已有的镜像 docker images -a :列出本地所有的镜像(含中间映像层) -q :只显示镜像ID --digests :显示…...
Linux系统部署Paperless-Ngx文档管理系统结合内网穿透实现公网访问
文章目录 1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 Paperless-ngx是一个开源的文档管理系统,可以将物理文档转换成可搜索的在线档案,从而减少纸张的使用。它内置…...
6.shell case控制语句
case控制语句 1.什么是case case条件语句相当于多分支的if/elif/else条件语句,主要还是用来做条件判断的,常被应用于实现系统服务启动脚本。 case语句中,会将case获取的变量值与表达式部分的值1、值2、值3等逐个进行比较,如果变量值和某个表…...
如何判断HDMI接口版本是1.4还是2.0呢?
如何判断HDMI接口版本是1.4还是2.0呢? HDMI是一种用于传输高质量音频和视频信号的接口标准。随着技术的不断发展,HDMI接口也经历了多次升级和改进。在市场上,常见的HDMI接口版本包括1.4和2.0。判断HDMI接口版本主要通过以下几种方法ÿ…...
【开发环境搭建篇】NodeJS的安装和配置
作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是࿰…...
【Docker】docker和docker-compose一键安装脚本(linux)
一、准备和运行脚本 当前脚本下载的docker和docker-compose兼容系统架构为x64,可以根据自己实际系统版本更改下载链接 1. 在控制台使用vim新建: vim install-docker.sh2. 复制内容并粘贴: #!/usr/bin/env bash # 设置脚本在遇到错误时终止执行 set -…...
在 Windows 中安装配置并启动运行 Jenkins【图文详细教程】
安装 Jenkins 的系统要求: 最少 256MB 可用内存最少 1GB 可用磁盘空间JDK 8 / 11 /17(Jenkins 是用 Java 写的,打包成 war 包) 查看 JDK 的版本 Java JDK 在 Windows 中安装可以参考:https://www.yuque.com/u27599042/…...
C# 读取txt文本所有行
引用:System.IO; Path.Combine(); //将字符串组合成一个路径 Path.GetFullPath(); //返回指定路径的绝对路径 File.ReadAllLines(); //读取文本框返回一个数组 File.ReadAllText(); //读取文本框返回一个字符串 File.ReadAllBytes(); //读取文本框返回字节 …...
STM32使用常见错误合集(正在更新版)
本文章记录一些学习STM32的一些错误问题,师承江科大哈哈哈 一、编译、烧录类问题 1、烧录不成功,Keil提示RDDI-DAP Error【场景:PWM驱动直流电机】 解决方案:将电机断开再进行烧录,断开后就可以美美烧录不报错啦~ …...
Java Random类
一、Random类 在项目开发中,经常需要使用随机数值,例如,网站登录中的验证码,或者需要以一定概率实现的某种效果(如游戏程序中的物品掉落等),就需要Java提供的Random类,该类用于生成…...
【Spring Cloud】微服务通信概述
SueWakeup 个人主页:SueWakeup 系列专栏:学习技术栈 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凯楠📷 友情赞助播出 目录 前言 1. Dubbo(Spring Cloud Alibaba)和 Spring Cloud 的适…...
MySQL的概述与安装
一、数据库的基本概念: 1.1 数据: 1) 描述事物的符号记录称为数据(Data)。数字、文字、图形、图像、声音、档案记录等 都是数据。 2)数据是以“记录”的形式按照统一的格式进行存储的,而不是…...
《被讨厌的勇气》书摘2
发生什么不重要,怎样看待才重要 生活的真谛就是活在当下 来自他人和社会的评价,造成了我们的骄傲和自卑。人们经常借“爱”之名,行控制之实 学会课题分离 当我们发现自己的价值的时候,才具备了让自己真正自由和自主的勇气 人…...
基于SpringBoot的会员制医疗预约服务管理信息系统
开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统展示 系统功能模块 会员制医疗预约服务管…...
【二十三】【算法分析与设计】三柱汉诺塔详解,计算子移动次数,正常递归计算,观察数据得出数学规律,递归图得出数学规律,将递归函数转化为递推式
目录 汉诺塔递归 汉诺塔子移动次数的计算 牛牛的汉诺塔 选择正常的递归模拟计算子移动次数 根据具体数据得出数学规律 根据递归图得出数学规律 将递归函数转化为递推式 结尾 汉诺塔递归 汉诺塔是一个经典问题,相传在古印度圣庙中,有一种被称为汉…...
C# WPF编程-XAML
C# WPF编程-XAML XAML简述XAML子集XAML编译XAML基础XAML名称空间XAML中的属性和事件属性事件使用其他名称空间中的类型 加载和编译XAML XAML简述 XAML(Extensible Application Markup Language的简写,发音"zammel")是用于实例化.NET对象的标记语言。XAML…...
java 高级面试题(借鉴)(下)
雪花算法原理 第1位符号位固定为0,41位时间戳,10位workId,12位序列号,位数可以有不同实现。 优点:每个毫秒值包含的ID值很多,不够可以变动位数来增加,性能佳(依赖workId的实现…...
C++测试代码
C测试代码 目录 基于C实现的AOP功能 基于C实现的AOP功能 #include <iostream> #include <string>struct LogHeader {std::string prefix;std::string aspect; };template <typename T> void before(const std::string& msg, const LogHeader& heade…...
Flask python 开发篇:蓝图的使用
蓝图 引言一、为什么使用蓝图?二、蓝图的概念三、创建蓝图四、注册蓝图五、分享我的creat_app方法六、写在最后 引言 falsk是个轻量级的框架,核心实现简单,但同事可以让开发人员自由的扩展功能。开发中,使用模块导入的方式。 一…...
抖音视频爬虫下载软件|可导出视频分享链接|视频批量采集工具
无水印视频关键词批量下载工具操作指南 我们自主开发了一款便捷的音视频批量下载工具,不仅支持单个视频链接提取,还可通过关键词搜索实现批量采集和选择性下载,让您轻松获取所需视频内容。 操作说明: 关键词批量采集视频 进入软件…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
