docker容器的基本操作

news2024/9/20 18:05:34

一、查看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 运行过程中存储目录容量不足。

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

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

相关文章

3ds Max建模教程:模拟布料拖拽撕裂和用剑撕裂两种效果

推荐&#xff1a; NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 拖拽撕布 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 在透视视口中创建平面。保持其长度 后座和宽度后座为 100。 创建平面 步骤 3 转到助手>假人并在 飞机的两侧。 助手>假人 步骤 4 选…

SpringBoot复习:(10)SpringApplication中的initializer成员变量是怎么初始化的?

initializers成员变量定义如下&#xff1a; 在构造方法里通过setInitializers setInitializers的代码很简单&#xff1a; 其中的参数通过getSpringFactoriesInstances来获取的&#xff0c;该方法的代码如下&#xff1a; 其中调用的重载的方法代码如下&#xff1a; 它调用…

python-网络爬虫.BS4

BS4 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库&#xff0c; 它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方 式。 Beautiful Soup 4 官方文档&#xff1a;https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ 帮助手册&…

雷达信号处理技术汇总

系列文章目录 《雷达简单介绍》 《信号类型&#xff08;雷达&#xff09;——雷达波形认识&#xff08;一&#xff09;》 《信号类型&#xff08;雷达&#xff09;——连续波雷达&#xff08;二&#xff09;》 《信号类型&#xff08;雷达&#xff09;——脉冲雷达&#xf…

clickhouse查询缓存

为了实现最佳性能&#xff0c;数据库需要优化其内部数据存储和处理管道的每一步。但是数据库执行的最好的工作是根本没有完成的工作&#xff01;缓存是一种特别流行的技术&#xff0c;它通过存储早期计算的结果或远程数据来避免不必要的工作&#xff0c;而访问这些数据的成本往…

C++高级编程

本阶段主要针对C泛型编程和STL技术做详细讲解&#xff0c;探讨C更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具&#xff0c;大大提高复用性 模板的特点&#xff1a; 模板不可以直接使用&#xff0c;它只是一个框架模板的通用并不是万能的 1.2 函数模板 C另一…

前端页面---滑动分离登录页面

效果图如下&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equ…

电脑e盘不见了怎么办?3个方法帮你找回!

“很奇怪很奇怪&#xff0c;为什么我电脑上的e盘莫名其妙就没了呢&#xff1f;我有些文件还保存在里面呢&#xff0c;现在有什么方法能帮我把e盘找回来吗&#xff1f;” E盘通常是我们存储数据和文件的重要驱动器之一。如果电脑e盘不见了&#xff0c;我们可能也会感到很焦虑。虽…

Vue+Element Plus 初始化

1. 初始化 Vue 项目 创建vue3 项目 vue create k8s-platform-fe 2. 引入 Element Plus 安装 element-plus 首先去安装这些依赖包&#xff0c;安装好了将其引入&#xff0c;引入的方式有全局引用和局部引入。其实和组件是一样的&#xff0c;局部引入哪里引入哪里使用。…

API教程:轻松上手HTTP代理服务!

作为HTTP代理产品供应商&#xff0c;我们为您带来一份详细的教程&#xff0c;帮助您轻松上手使用API&#xff0c;并充分利用HTTP代理服务。无论您是开发人员、网络管理员还是普通用户&#xff0c;本教程将为您提供操作指南和代码模板&#xff0c;确保您能够顺利使用API并享受HT…

Ubuntu安装harbor(http模式)并随便上传一个

Ubuntu安装harbor&#xff08;http模式&#xff09; docker和harbor的介绍就免了&#xff0c;都不知道啥东西&#xff0c;还安装搞毛 先安装docker环境 不要问&#xff0c;软件源之类的配置&#xff0c;挨个梭就行 sudo apt update sudo apt install apt-transport-https ca…

python简单的病毒编程代码,如何用python写一个病毒

大家好&#xff0c;本文将围绕python简单的病毒编程代码展开说明&#xff0c;如何用python做恶搞病毒是一个很多人都想弄明白的事情&#xff0c;想搞清楚如何用python写一个病毒需要先了解以下几个事情。 1、Python能不能写病毒 国家计算机病毒应急处理中心通过对互联网的监测…

刷题笔记:day 1

力扣 283 移动零 解法一&#xff1a;双指针 定义一个指针 cur 去遍历数组 &#xff1b; 定义一个指针 dest 去指向已处理区间中&#xff0c;非零的最后一个位置。 然后让 指针 cur 遇到 0 &#xff0c;就往后走 &#xff1b; 遇到的数不是 0 &#xff0c;就与 dest指针的下…

C语言结构体讲解

目录 结构体的声明 结构的基础知识 结构的声明 为什么要出现结构体&#xff1f; 结构成员的类型 结构体变量的定义和初始化 定义&#xff1a;&#xff08;全局变量//局部变量&#xff09; 初始化&#xff1a; 结构体成员的访问 结构体传参 结构体的声明 结构的基础知识…

会议oa系统项目部署流程

目录 1.项目部署环境 2.初始化数据库 2.1获取数据库脚本 2.2创建数据库 1.创立数据库连接 2.创建数据库&#xff0c;命名 3.运行sql文件 4.查看导入数据 ​编辑 ​编辑 3项目环境部署 3.1导入项目资源 3.2加载框架 加载成功标志 服务器配置&#xff08;用来保存排…

详解跨境电商ERP开发的核心技术

跨境电商行业的蓬勃发展为企业带来了前所未有的机遇&#xff0c;然而&#xff0c;成功经营跨境电商业务需要高效的管理和操作。在这方面&#xff0c;跨境电商ERP系统成为了关键的工具&#xff0c;能够整合各个业务环节&#xff0c;实现高效运作和优化决策。本文将详解跨境电商E…

一文看懂kubernetes部署:持久卷的安装

持久卷的安装 NFS服务的建立 为了实现elasticsearch以及rabbitmq的数据持久化&#xff0c;需要在k8s中建立持久卷&#xff0c;我们采用nfs方式建立持久卷。 对于持久卷的结构规划如下&#xff1a; 关于索引的磁盘占用&#xff1a; 请根据业务的数据量情况来规划持久卷硬件的情…

android Android Studio Giraffe | 2022.3.1 版本Lombok不兼容 解决方案

android Android Studio Giraffe | 2022.3.1 版本Lombok不兼容 解决方案 1.查看当前的android studio 版本 Android Studio Giraffe | 2022.3.1 Build #AI-223.8836.35.2231.10406996, built on June 29, 2023 2.打开 idea 官网下载页面 idea下载历史版本 找到对应的版本编号…

P5691 [NOI2001] 方程的解数(内附封面)

[NOI2001] 方程的解数 题目描述 已知一个 n n n 元高次方程&#xff1a; ∑ i 1 n k i x i p i 0 \sum\limits_{i1}^n k_ix_i^{p_i} 0 i1∑n​ki​xipi​​0 其中&#xff1a; x 1 , x 2 , … , x n x_1, x_2, \dots ,x_n x1​,x2​,…,xn​ 是未知数&#xff0c; k 1 ,…

RabbitMQ 教程 | 第5章 RabbitMQ 管理

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…