docker容器的基本操作

一、查看Docker的版本信息

[root@huyang1 ~]# docker version

二、查看docker的详细信息

[root@huyang1 ~]# docker info

三、Docker镜像操作

        Docker创建容器前需要本地存在对应的镜像,如果本地加载不到相关镜像,Docker默认就会尝试从镜像仓库https://hub.docker.com下载,这是由Docker官方维护的一个公共仓库,可以满足用户的绝大部分需求,用户也可以通过配置来使用自定义的镜像仓库。

1、docker search //从Docker Hub搜索镜像

命令格式:docker search 关键字

参数:

--automated=false 仅显示自动创建的镜像

--no-trunc=false  输出信息不截断显示

-s, --stars=0  指定仅显示评价为指定星级以上的镜像

[root@huyang1 ~]# docker search nginx

[root@huyang1 ~]# docker search -s 100 nginx //搜索星级为100以上的镜像

回显信息中都是包含nginx关键字的镜像、

其中返回信息包括:

镜像名称(NAME)、

描述(DESCRIPTION)、

星级(STARS)、

是否官方创建(OFFICIAL)、

是否主动创建(AUTOMATED)

        默认的输出结果会根据星级评价进行排序,表示该镜像的受欢迎度,在下载镜像时,可以参考这一项,在搜索时还可以使用-s或者--stars=x显示指定星级以上的镜像,x为任意数。星级越高表示越受欢迎: 是否为官方镜像一项是指是否是由官方项目组创建和维护的镜像,

        一般官方项目组维护的镜像使用单个单词作为镜像名称。我们称为基础镜像或者根镜像。

        像jwilder/nginx-proxy这种命名方式的镜像,表示是由Docker Hub的用户jwilder创建并维护的镜像,带有用户名为前缀: 是否主动创建资源则是指是否允许用户验证镜像的来源和内容。

        使用docker search命令只能查找镜像,镜像的标签无法查找,因此如果需要查找docker标签,需要从网页上访问镜像仓库https://hub.docker.com进行查找。

2、获取镜像

搜索到符合需求的镜像,可以使用docker pull 命令从网络下载镜像到本地使用。

命令格式:docker pull 镜像名称[:标签]

        对于Docker镜像来说,如果下载镜像时不指定标签,则默认会下载仓库中最新版本的镜像,即选择标签为latest,也可以通过指定的标签来下载特定版本的某一镜像。

        这里标签就是用来区分镜像版本的。

[root@huyang1 ~]# docker pull nginx

[root@huyang1 ~]# docker pull centos

        从整个下载的过程可以看出,镜像文件是由若干层(Layer)组成,我们称为AUFS(联合文件系统),是实现增量保存于更新的基础,下载过程中会输出镜像的各层信息。镜像下载到本地之后就可以随时使用该镜像了。

        用户也可以选择从其他注册服务器仓库下载,这时需要在仓库名称前指定完整的仓库注册服务器地址。

3、查看镜像信息

使用docker images命令查看下载到本地的所有镜像。

命令格式:docker images 仓库名称[:标签]

[root@huyang1 ~]# docker images

[root@huyang1 ~]# docker images nginx

从回显的信息:

REPOSITORY  镜像所属仓库

TAG         镜像的标签信息

IMAGE ID     镜像的唯一ID

CREATED     镜像创建时间

SIZE          镜像大小

4、获取镜像的详细信息

命令格式:docker inspect 镜像名或镜像ID

[root@huyang1 ~]# docker inspect nginx

        镜像的详细信息中包括创建时间、系统版本、主机名、域名、用户、卷、标签、操作系统、设备ID等各种信息。

5、为镜像添加新的标签

命令格式:docker tag 名称[:标签] 新名称[:新标签]

[root@huyang1 ~]# docker tag nginx nginx:test

[root@huyang1 ~]# docker images

6、删除镜像

        使用docker rmi 命令可以删除多余的镜像。

        删除镜像的操作有两种方法:使用镜像的标签删除镜像;使用镜像的ID删除镜像。

命令格式:

docker rmi 镜像名称[:标签]

docker rmi 镜像ID

例:

[root@huyang1 ~]# docker rmi nginx:test

        当一个镜像有多个标签的时候, docker rmi命令只是删除该镜像多个标签中的指定标签,不会影响镜像文件,相当于只是删除了镜像的一个标签而已,但该镜像只剩下一个标签的时候就要小心了,再使用删除命令就会彻底删除该镜像。

docker rmi 镜像ID

例:

[root@huyang1 ~]# docker rmi 60

        当使用docker rmi命令后面跟上镜像的ID号时,必须确保该镜像没有被容器使用才能进行,删除时系统会先删除掉所有指向该镜像的标签,然后删除该镜像文件本身。如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

7、存出镜像和载入镜像

        当需要把一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成本地文件,这一个过程叫做存出镜像,可以使用docker save命令进行存出操作。之后就可以复制该文件到其他机器。

命令格式:docker save -o 存出镜像为本地文件 镜像名

例:

[root@huyang1 ~]# docker save -o nginx-images nginx

[root@huyang1 ~]# ls -l nginx-images 

        将存出的镜像从A 机器拷贝到B 机器,需要在B 机器上使用该镜像,就可以将该导出文件导入到B 机器的本地镜像列表中,这一过程叫做载入镜像。使用docker load 或者docker load --input 进行载入操作。

命令格式:docker load < 存出的文件或者docker load --input 存出的文件

        例如,从文件dhcp中载入镜像到本地镜像库中:

[root@huyang1 ~]# docker load < nginx-images

[root@huyang1 ~]# docker load --input nginx-images

8、上传镜像

        本地存储的镜像越来越多,就需要指定一个专门存放这些镜像的地方也就是仓库了。目前比较方便的就是公共仓库,默认上传到Docker Hub 官方仓库,需要注册使用公共仓库的账号,可以使用docker login 命令来输入用户名、密码和邮箱来完成注册和登录。在上传镜像之前,需要对本地镜像添加新的标签,然后再使用docker push 命令进行上传。

命令格式:docker push 仓库名称:标签

例如:

        在公共仓库上已经注册成功了一个账号,这个账号叫做crushlinux和对应密码,新增镜像的标签为192.168.200.111:5000/nginx:test。

[root@huyang1 ~]# docker login hub.docker.com

Username: crushlinux

Password: 对应密码

login Succeeded


成功登陆后就可以上传镜像

[root@huyang1 ~]# docker tag nginx

192.168.200.111:5000/nginx:test

[root@huyang1 ~]# docker push

192.168.200.111:5000/nginx:test

上传本地镜像:

[root@huyang1 ~]# docker load < nginx.tar

[root@huyang1 ~]# docker images

注意:可以发现,此时的nginx的ID号不同

四、Docker 容器操作

        容器是Docker 的另一个核心概念,简单说,容器是镜像的一个运行实例,是独立运行的一个或一  组应用以及它们所必需的运行环境,包括文件系统系统类库shell 环境等。

        镜像是只读模板,而容器会给这个只读模板一个额外的可写层。

下面将具体介绍围绕容器的具体操作:

1、创建容器与运行容器

        Docker 的创建就是将镜像加载到容器的过程,Docker 的容器十分轻量级,用户可以随时创建或者删除。

        新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器,这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全停止。停止的容器可以重新启动并保留原来的修改。

        可以使用docker create 命令新建一个容器。

命令格式:docker create [选项]… 镜像运行的程序

常用选项:

        -i 让容器的输入保持打开

        -t 让Docker 分配一个伪终端

        -d 守护进程形式运行

例:

[root@huyang1 ~]# docker create -it centos /bin/bash

        注意:如果创建容器命令报错“WARNING: IPv4 forwarding is disabled. Networking will not work.

        ”,就使用vi编辑器打开/etc/sysctl.conf文件,在其中添加net.ipv4.ip_forward=1,然后使用sysctl -p命令加载配置。

[root@huyang1 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

[root@huyang1 ~]# sysctl -p

        使用docker create 命令创建新容器后会返回一个唯一的ID。

        可以使用docker ps 命令来查看所有容器的运行状态。添加-a 选项可以列出系统中所有容器状态。

[root@huyang1 ~]# docker ps -a

        输出信息显示容器的ID 号加载的镜像运行的程序创建时间目前所处的状态端口映射。其中状态一栏为空表示当前的容器处于停止状态。

2、容器的启动与停止

        启动停止容器可以使用docker start 命令。

命令格式:docker start 容器的ID/名称

[root@huyang1 ~]# docker start

b3ba7fee6e87a25937cfc83b7bec4efeb1e01ee9c2a80fd327ac250f32c3591cf(可以写全称、也可以写缩称,前提是在运行的id没有重复的情况下)

[root@huyang1 ~]# docker ps -a

        容器启动后,可以看到容器状态一栏已经变为UP,表示容器已经处于启动状态。如果用户想创建并启动容器,可以直接执行docker run 命令,等同于先执行docker create 命令,再执行docker start 命令。需要注意只要后面的命令运行结束,容器就会停止。

3、容器的删除

        docker start|stop|restart|kill //运行已停止的容器|停止一个正在运行的容器|重启一个容器|杀死一个正在运行的容器

        可以使用docker rm 命令将一个已经终止状态的容器进行删除。

命令格式:docker rm 容器ID/名称

例如,删除ID 号为21f5e00a42e7的容器:

[root@huyang1 ~]# docker rm -f

3ba7fee6e87a25937cfc83b7bec4efeb1e01ee9c2a80fd327ac250f32c3591cf

        如果删除一个正在运行的容器,可以添加-f 选项强制删除,但是建议先将容器停止再做删除操作。

        Docker 默认的存储目录为/var/lib/docker,Docker的镜像、容器、日志等内容全部都存储在此,可以单独使用大容量的分区来存储这些内容,并且一般选择建立LVM 逻辑卷。从而避免Docker 运行过程中存储目录容量不足。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

cc2652主协处理器分时控制同一个外设的问题

问题已提交TI论坛&#xff0c;我是提交到的中文论坛&#xff0c;然后fae给转到英文论坛了。 简单描述就是&#xff0c;怎么让这个单片机一会用主处理器控制SPI设备&#xff0c;一会再用协处理器控制同一个设备。 主处理器的spi配置使用 CCS studio配置的 协处理器使用Sensor Co…

【python】我用python写了一个可以批量查询文章质量分的小项目(纯python、flask+html、打包成exe文件)

web 效果预览&#xff1a; 文章目录 一、API 分析1.1 质量分查询1.2 文章url获取 二、代码实现2.1 Python2.11 分步实现2.12 一步完成2.13 完整代码 2.2 python html2.21 在本地运行2.22 打打包成exe文件2.23 部署到服务器 一、API 分析 1.1 质量分查询 先去质量查询地址&a…

uniapp app端 echarts 设置tooltip的formatter不生效问题以及解决办法

需求一&#xff1a; y轴数据处理不同数据增加不同单位 需求二&#xff1a; 自定义图表悬浮显示的内容 需求一&#xff1a;实现方式 在yAxis里面添加formatter yAxis: [{//y轴显示value的设置axisLabel: {show: true,formatter (value, index) > {var valueif (value > 1…

Jmeter用于接口测试中,关联如何实现

Jmeter用于接口测试时&#xff0c;后一个接口经常需要用到前一次接口返回的结果&#xff0c;应该如何获取前一次请求的结果值&#xff0c;应用于后一个接口呢&#xff0c;拿一个登录的例子来说明如何获取。 1、打开jmeter, 使用的3.3的版本&#xff0c;新建一个测试计划&#x…

抄写Linux源码(Day6:读闪客文章第一回 “最开始的两行代码”)

按照 Day1 完成了 Linux0.11 的运行之后&#xff0c;可以在 ~/oslab/linux-0.11 找到 linux0.11 的源码 根据闪客的文章第一回&#xff1a;https://mp.weixin.qq.com/s/LIsqRX51W7d_yw-HN-s2DA Linux0.11 的启动代码程序入点在 bootsect.s 里&#xff0c;总共 512 个字节 这…

烘焙小程序蛋糕店烘焙店源码点心店小程序源码

本系统开发使用JAVA技术栈开发 使用uniapp技术栈 支持微信小程序 &#xff0c;对接打印机&#xff0c;对接第三方同城跑腿平台 用户端使用&#xff1a;uniapp 管理端使用&#xff1a;vueelementui 后台服务使用&#xff1a;springbootjpa

Web课堂笔记

Web课堂笔记 文章目录 Web课堂笔记第一周html部分CSS部分php部分 第二周B/S工作原理http协议**块标记** 第三周标准盒状模型标签优先级**伪类选择器**伪元素派生选择器 第四周Flex布局多媒体查询下拉菜单作业 第五周创建一个NodeLocalStorage 和 SessionStorge 异同JQuery作业 …

filebeat kibana elasticsearch 日志监控

解压三个压缩包 一、filebeat的安装部署 1、打开filebeat的配置文件 2、Filebeat inputs 处打开日志输入开关&#xff0c;设置要监控的路径 3、Outputs 输出中设置Elasticsearch output的输出地址 4、配置kibana 的地址 5、执行 ./filebeat setup -e 二、Elasticsearch 安装…

github Recv failure: Connection reset by peer

Recv failure: Connection reset by peer 背景处理ping一下github网页访问一下github项目git配置git ssh配置再次尝试拉取 疑惑点待研究参考 背景 晚上敲着代码准备提交&#xff0c;执行git pull&#xff0c;报错Recv failure: Connection reset by peer。看着这报错我陷入了沉…

SpringBoot百货超市商城系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot框架开发的百货超市系统。首先&#xff0c;这是一个很适合SpringBoot初学者学习的项目&#xff0c;代…

微服务架构的模式介绍

1.微服务架构模式方案 用Scale Cube方法设计应用架构&#xff0c;将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库&#xff0c;从而保证与其他服务解耦。 1.1 聚合器微服务设计模式 聚合器调用多个服务实现应用程…

k8s安装Jenkins

目录 ​编辑 一、环境准备 1.1 环境说明 二、安装nfs 2.1 安装NFS 2.2 创建NFS共享文件夹 2.3 配置共享文件夹 2.4 使配置生效 2.5 查看所有共享目录 2.6 启动nfs 2.7 其他节点安装nfs-utils 三、创建PVC卷 3.1 创建namespace 3.2 创建nfs 客户端sa授权 3.3 创建…

SQL Server数据库 -- 索引与视图

文章目录 一、索引 聚集索引非聚集索引二、视图三、自定义函数 标量函数表值函数四、游标五、总结 前言 在学习完创建库表、查询等知识点后&#xff0c;为了更加方便优化数据库的存储和内容&#xff0c;我们需要学习一系列的方法例如索引与视图等等&#xff0c;从而使我们更加…

SpringBoot项目中使用Lombok插件中Slf4j日志框架

前言&#xff1a;idea需要安装lombok插件&#xff0c;因为该插件中添加了Slf4j注解&#xff0c;可以将Slf4j翻译成 private static final org.slf4j.Logger logger LoggerFactory.getLogger(this.XXX.class); springboot本身就内置了slf4j日志框架&#xff0c;所以不需要单独…

Unity-缓存池

一、.基础缓存池实现 继承的Singleton脚本为 public class Singleton<T> where T : new() {private static T _instance;public static T GetIstance(){if (_instance null)_instance new T();return _instance;} } 1.PoolManager using System.Collections; using S…

中国工商银行长春分行 聚焦融合互促 让机关党建更有活力

党的十八大以来&#xff0c;中国工商银行长春分行党委认真落实中央部署&#xff0c;立足金融工作政治性、人民性的基本原则&#xff0c;深刻把握机关党建的要点、着力破解难点、大力打造亮点&#xff0c;围绕“党建”模式&#xff0c;将党建融入经营管理各个方面&#xff0c;使…

创建邮件服务器(小微企业)

这里写自定义目录标题 目的硬件选型&#xff1a;软件选型&#xff1a;coremail &#xff08;商业版本&#xff09;postfixumail免费开源版本新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适…

docker minio安装

1.介绍 Minio是一款开源的对象存储服务&#xff0c;它可以在任何硬件或云平台上提供高性能、高可用性和高安全性的存储解决方案。Minio最新版是2021年11月发布的RELEASE.2021-11-24T23-19-33Z&#xff0c;它带来了以下几个方面的改进和新特性&#xff1a; - 支持S3 Select AP…

c语言(函数)

目录 何为函数 库函数 自定义函数 二分查找数组下标 链式访问 函数的声明 函数定义 递归 正向打印数字 打印字符个数 使用临时变量 递归(不使用临时变量) n的阶乘 一般形式 递归 斐波那契数 递归 正常做法 何为函数 在计算机科学中&#xff0c;子程序是一个…

Leetcode(一):数组、链表部分经典题目详解(JavaScript版)

数组、链表部分算法题 一、数组1. 二分查找2. 移除数组元素3. 有序数组的平方4. 长度最小的子数组5. 螺旋矩阵 二、链表1. 删除链表元素2. 设计链表3.反转链表4.两两交换链表中的节点5.删除链表倒数第n个节点6.环形链表 提前声明&#xff1a;本博客内容均为笔者为了方便个人理解…