【Docker】三 镜像容器常用命令

news2024/11/16 21:44:13

这里写目录标题

  • 1 配置镜像加速器
  • 2 Docker镜像常用命令
    • 2.1 搜索镜像
    • 2.2 下载镜像[重要]
    • 2.3 列出镜像[重要]
    • 2.3 删除本地镜像[重要]
    • 2.4 保存镜像
    • 2.5 加载镜像
    • 2.6 构建镜像[重要]
  • 3 容器常用命令
    • 3.1 新建并启动容器[重要]
    • 3.2 列出容器[重要]
    • 3.3 停止容器[重要]
    • 3.4 强制停止容器[重要]
    • 3.5 启动已停止的容器[重要]
    • 3.6 重启容器[重要]
    • 3.6 进入容器[重要]
    • 3.7 删除容器[重要]
    • 3.8 导出容器
    • 3.9 导入容器

1 配置镜像加速器

国内访问Docker Hub的速度很不稳定,有时甚至出现连接不上的情况。本节我们来为Docker配置镜像 加速器,从而解决这个问题。目前国内很多云服务商都提供了镜像加速的服务。

常用的镜像加速器有:阿里云加速器、DaoCloud加速器等。各厂商镜像加速器的使用方式大致类似, 笔者以阿里云加速器为例进行讲解。

  1. 注册阿里云账号后,即可在阿里云控制台(https://cr.console.aliyun.com/#/accelerator)看到类似 如下的⻚面。
    在这里插入图片描述
  2. 按照图中的说明,即可配置镜像加速器。

2 Docker镜像常用命令

我们首先来讨论Docker镜像的常用命令。

2.1 搜索镜像

可使用 docker search 命令搜索存放在Docker Hub中的镜像。 命令格式:

docker search [OPTIONS] TERM

参数:
在这里插入图片描述
示例1:

docker search java

执行该命令后,Docker就会在Docker Hub中搜索含有“java”这个关键词的镜像仓库。执行该命令后, 可看到类似于如下的表格:

在这里插入图片描述

该表格包含五列,含义如下:

1 NAME:镜像仓库名称。
2 DESCRIPTION:镜像仓库描述。
3 STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars。
4 OFFICAL:表示是否为官方仓库,该列标记为[OK]的镜像均由各软件的官方项目组创建和维护。由 结果可知,java这个镜像仓库是官方仓库,而其他的仓库都不是镜像仓库。
5 AUTOMATED:表示是否是自动构建的镜像仓库。

示例2:

docker search -s 10 java

2.2 下载镜像[重要]

使用命令 docker pull 命令即可从Docker Registry上下载镜像。

命令格式:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

参数:
在这里插入图片描述
示例1:

docker pull java

执行该命令后,Docker会从Docker Hub中的java仓库下载最新版本的Java镜像。

示例2:
该命令还可指定想要下载的镜像标签以及Docker Registry地址,例如:

docker pull reg.itmuch.com/java:7

这样就可以从指定的Docker Registry中下载标签为7的Java镜像。

2.3 列出镜像[重要]

使用 docker images 命令即可列出已下载的镜像。
执行该命令后,将会看到类似于如下的表格:

该表格包含了5列,含义如下:
1 REPOSITORY:镜像所属仓库名称。
2 TAG:镜像标签。默认是latest,表示最新。 3 IMAGE ID:镜像ID,表示镜像唯一标识。 4 CREATED:镜像创建时间。
5 SIZE:镜像大小。

命令格式:

docker images [OPTIONS] [REPOSITORY[:TAG]]

参数:

在这里插入图片描述
示例:

docker images
docker images java
docker images java:8
docker images --digests
docker images --filter “dangling=true” # 展示虚悬镜像

2.3 删除本地镜像[重要]

使用 docker rmi 命令即可删除指定镜像。
命令格式:

docker rmi [OPTIONS] IMAGE [IMAGE...]

参数:

在这里插入图片描述
例1:删除指定名称的镜像。

docker rmi hello-world

表示删除hello-world这个镜像。

例2:删除所有镜像。

docker rmi -f $(docker images)

-f参数表示强制删除。

2.4 保存镜像

使用 docker save 即可保存镜像。
命令格式:

docker save [OPTIONS] IMAGE [IMAGE...]

参数:
在这里插入图片描述
例1:

docker save busybox > busybox.tar
docker save --output busybox.tar busybox

2.5 加载镜像

使用 docker load 命令即可加载镜像。
命令格式:

docker load [OPTIONS]

参数:

在这里插入图片描述
例1:

docker load < busybox.tar.gz
docker load --input fedora.tar

2.6 构建镜像[重要]

通过Dockerfile构建镜像。
命令格式:

docker build [OPTIONS] PATH | URL | -

参数:
在这里插入图片描述
在这里插入图片描述

3 容器常用命令

我们来讨论Docker容器的常用命令。

3.1 新建并启动容器[重要]

使用以下 docker run 命令即可新建并启动一个容器。该命令是我们最常用的命令了,它有很多选 项,下面列举一些常用的选项。

1 -d选项:表示后台运行
2 -P选项:随机端口映射
3 -p选项:指定端口映射,有以下四种格式。

ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort

4 --network选项:指定网络模式,该选项有以下可选参数:
–network=bridge: 默认选项,表示连接到默认的网桥。
–network=host:容器使用宿主机的网络。
–network=container:NAME_or_ID:告诉Docker让新建的容器使用已有容器的网络配置。
–network=none:不配置该容器的网络,用户可自定义网络配置。

示例1:

docker run java /bin/echo 'Hello World'

这样终端会打印Hello World的字样,跟在本地直接执行 /bin/echo ‘Hello World’ 一样。

示例2:

docker run -d -p 91:80 nginx

这样就能启动一个Nginx容器。在本例中,我们为docker run添加了两个参数,含义如下:

访问http://Docker宿主机IP:91/ ,将会看到如图的界面:

在这里插入图片描述
TIPS:

需要注意的是,使用docker run命令创建容器时,会先检查本地是否存在指定镜像。如果本地不存在该 名称的镜像,Docker就会自动从Docker Hub下载镜像并启动一个Docker容器。

3.2 列出容器[重要]

使用 docker ps 命令即可列出运行中的容器。执行该命令后,可看到类似于如下的表格。

在这里插入图片描述
如需列出所有容器(包括已停止的容器),可使用-a参数。 该表格包含了七列,含义如下:
1 CONTAINER_ID:表示容器ID。
2 IMAGE:表示镜像名称。
3 COMMAND:表示启动容器时运行的命令。
4 CREATED:表示容器的创建时间。
5 STATUS:表示容器运行的状态。Up表示运行中,Exited表示已停止。
6 PORTS:表示容器对外的端口号。
7 NAMES:表示容器名称。该名称默认由Docker自动生成,也可使用docker run命令的–name选项 自行指定。
命令格式:

docker ps [OPTIONS]

参数:

在这里插入图片描述
示例:

docker ps -n 5
docker ps -a -q

3.3 停止容器[重要]

使用 docker stop 命令,即可停止容器。
命令格式:

docker stop [OPTIONS] CONTAINER [CONTAINER...]

参数:
在这里插入图片描述
示例:

docker stop 784fd3b294d7

3.4 强制停止容器[重要]

可使用 docker kill 命令停止一个或更多运行着的容器。

命令格式:

docker kill [OPTIONS] CONTAINER [CONTAINER...]

参数:
在这里插入图片描述
例如:

docker kill 784fd3b294d7

3.5 启动已停止的容器[重要]

使用 docker run 命令,即可新建并启动一个容器。对于已停止的容器,可使用 docker start
令来启动。 命令格式:

docker start [OPTIONS] CONTAINER [CONTAINER...]

参数:

在这里插入图片描述
例如:

docker start 784fd3b294d7

3.6 重启容器[重要]

可使用 命令来重启容器。该命令实际上是先执行了 docker stop 命令,然后执行
了 命令。

命令格式:

docker restart [OPTIONS] CONTAINER [CONTAINER...]

参数:
在这里插入图片描述

3.6 进入容器[重要]

某场景下,我们可能需要进入运行中的容器。
1 使用 docker attach 命令进入容器。 例如:

docker attach 784fd3b294d7

很多场景下,使用 docker attach 命令并不方便。当多个窗口同时attach到同一个容器时,所有窗口 都会同步显示。同理,如果某个窗口发生阻塞,其他窗口也无法执行操作。

2 使用 nsenter 进入容器

nsenter工具包含在util-linux 2.23或更高版本中。为了连接到容器,我们需要找到容器第一个进程的PID,可通过以下命令获取:

docker inspect --format "{{.State.Pid}}" $CONTAINER_ID

获得PID后,就可使用nsenter命令进入容器了:

nsenter --target "$PID" --mount --uts --ipc --net --pid

读者也可将以上两条命令封装成一个Shell,从而简化进入容器的过程。

3 docker exec

docker exec -it 容器id /bin/bash

3.7 删除容器[重要]

使用 docker rm 命令即可删除指定容器。
命令格式

docker rm [OPTIONS] CONTAINER [CONTAINER...]

参数:
在这里插入图片描述
例1:删除指定容器。

docker rm 784fd3b294d7

该命令只能删除已停止的容器,如需删除正在运行的容器,可使用-f参数。
例2:删除所有的容器。

docker rm -f $(docker ps -a -q)

3.8 导出容器

将容器导出成一个压缩包文件。
命令格式:

docker export [OPTIONS] CONTAINER

参数:
在这里插入图片描述
示例:

docker export red_panda > latest.tar
docker export --output="latest.tar" red_panda

3.9 导入容器

使用 docker import 命令即可从归档文件导入内容并创建镜像。 命令格式:

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

参数:
在这里插入图片描述
示例:

docker import nginx2.tar nginx

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

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

相关文章

你可以不用Git,但不能不会Git(三)基础(下)

目录 一.将文件添加至忽略列 二.日志记录操作 三.比较文件差异 四.还原文件 一.将文件添加至忽略列 一般我们总会有些文件无需纳入Git的管理&#xff0c;也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件&#xff0c;比如日志文件&#xff0c;或者编译过程中…

重学 Java 设计模式-结构型模式-适配器模式

重学 Java 设计模式-结构型模式-适配器模式 内容摘自&#xff1a;添加链接描述 适配器模式介绍 图片来自&#xff1a;https://refactoringguru.cn/design-patterns/adapter(opens new window) 适配器模式的主要作用就是把原本不兼容的接口&#xff0c;通过适配修改做到统一。…

canva绘制(二次、三次)贝塞尔曲线并且图片在曲线上运动

下图为实现效果&#xff08;图片在三次贝塞尔曲线中运动&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

Spring之注解开发

目录 一&#xff1a;Bean基本注解开发 二&#xff1a;Bean依赖注入注解开发 三&#xff1a;非自定义Bean注解开发 四&#xff1a;Bean配置类的注解开发 五&#xff1a;Spring配置其他注解 六&#xff1a;Spring注解的解析原理 一&#xff1a;Bean基本注解开发 Spring除了…

【区块链】区块链技术学习总结

文章目录一、区块链技术简介1.1 区块链概念1.2 区块链应用1.2.1 区块链1.0技术&#xff1a;比特币1.2.2 区块链2.0技术&#xff1a;以太坊1.2.3 区块链3.0技术&#xff1a;价值互联网二、区块链1.0技术比特币2.1 比特币2.1.1 比特币概念2.1.2 比特币性质2.1.3 比特币解决的问题…

Springboot扩展点之BeanDefinitionRegistryPostProcessor

前言通过这篇文章来大家分享一下&#xff0c;另外一个Springboot的扩展点BeanDefinitionRegistryPostProcessor&#xff0c;一般称这类扩展点为容器级后置处理器&#xff0c;另外一类是Bean级的后置处理器&#xff1b;容器级的后置处理器会在Spring容器初始化后、刷新前这个时间…

第二章 chrony服务器

文章目录第二章 chrony服务器1.1安装与配置1.2同步网络时间服务器1.3 配置时间服务器1.4 chronyc 命令1.5常见时区课后练习第一题&#xff1a;第一台机器从阿里云同步时间&#xff0c;第二台机器从第一台机器同步时间第二题&#xff1a;第一台服务器使用系统时间作为第二台服务…

jetson nano GPIO控制说明

文章目录一.GPIO介绍二.安装GPIO库python库C库三.几种常用的通信协议UARTPWMI2CI2SSPI四.控制函数说明python&#xff08;[参考](https://pypi.org/project/Jetson.GPIO/)&#xff09;C五.例程一.GPIO介绍 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输…

干货 | Web自动化测试中显式等待与隐式等待该怎么用?

在实际工作中等待机制可以保证代码的稳定性&#xff0c;保证代码不会受网速、电脑性能等条件的约束。等待就是当运行代码时&#xff0c;如果页面的渲染速度跟不上代码的运行速度&#xff0c;就需要人为的去限制代码执行的速度。在做 Web 自动化时&#xff0c;一般要等待页面元素…

高压放大器在电子束增材制造聚焦消像散控制技术研究的应用

实验名称&#xff1a;高压放大器在电子束增材制造聚焦消像散控制技术研究的应用 研究方向&#xff1a;增材制造 实验目的&#xff1a; 电子束选区熔化技术&#xff0c;即电子束3D打印技术&#xff0c;属于金属增材制造的分支。该技术以电子束为热源&#xff0c;在计算机控制下以…

华为防火墙配置笔记

防火墙&#xff08;Firewall&#xff09;也称防护墙&#xff0c;是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网&#xff08;US5606668&#xff08;A&#xff09;1993-12-15&#xff09;防火墙是位于内部网和外部网之间的屏障&#xff0c;它按照系统管理员预先定…

实战工作十年的Code Review方法论与实践总结

作为卓越工程文化的一部分&#xff0c;Code Review其实一直在进行中&#xff0c;只是各团队根据自身情况张驰有度&#xff0c;松紧可能也不一&#xff0c;这里简单梳理一下CR的方法和团队实践。 一、为什么要CR 提前发现缺陷 在CodeReview阶段发现的逻辑错误、业务理解偏差、…

CleanMyMac2023Mac下载排行最好的清理工具

CleanMyMac是Mac清理工具&#xff0c;具有很多功能。例如‬&#xff0c;删除大量不可见的缓存文件&#xff0c;可以批量删除未使用的DMG、不完整的下载以及其余的旧包。不过由于MAC系统不像windows那样会产生缓存或系统垃圾&#xff0c; 使用Win电脑很多人会下载各类系统优化软…

MQ面试题总结

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java面试题…

【流行框架】Zookeeper

&#x1f31f;个人博客&#xff1a;www.hellocode.top&#x1f31f; &#x1f31f;Java知识导航&#xff1a;Java-Navigate&#x1f31f; ⭐想获得更好的阅读体验请前往Java-Navigate &#x1f525;本文专栏&#xff1a;《流行框架》 &#x1f31e;如没有JavaWEB基础&#xff0…

Linux文件目录结构详解

Linux文件目录结构 Linux文件系统是采用级层式的树状目录结构&#xff0c;在此结构中的最上层是根目录“/”&#xff0c;然后在此目录下再创建其他的目录 Linux系统下一切硬件皆文件 具体的目录结构 /bin ->存放最经常使用的指令/sbin ->存放系统管理员使用的系统管理…

从Redis、HTTP协议,看Nett协议设计,我发现了个惊天大秘密

1. 协议的作用 TCP/IP 中消息传输基于流的方式&#xff0c;没有边界 协议的目的就是划定消息的边界&#xff0c;制定通信双方要共同遵守的通信规则 2. Redis 协议 如果我们要向 Redis 服务器发送一条 set name Nyima 的指令&#xff0c;需要遵守如下协议 // 该指令一共有3…

第一章 R语言介绍

1.为何使用R 与起源于贝尔实验室的S语言类似&#xff0c;R也是一种为统计计算和绘图而生的语言和环境&#xff0c;它是一套开源的数据分析解决方案&#xff0c;由一个庞大且活跃的全球性研究型社区维护。但是&#xff0c;市面上也有许多其他流行的统计和制图软件&#xff0c;如…

NLP自然语言处理NLTK常用英文功能汇总

自然语言处理 (NLP) 是一门研究如何让计算机程序理解人类语言的学科。NLTK (Natural Language Toolkit) 是一个 Python 包,可以用于 NLP 的应用开发。 很多数据都是非结构化的,而且包含可以被人类读懂的文本。在用编程方式分析这些数据之前,我们需要对它们进行预处理。在本…

Allegro174版本新功能介绍之背景颜色设置

Allegro174版本新功能介绍之背景颜色设置 Allegro升级到了174的时候,打开的时候默认是黑色的背景,如下图 选择界面 工作界面 和166以及172版本不一样,174支持切换成白色的背景,具体操作如下 选择setup