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.comUsername: crushlinuxPassword: 对应密码login Succeeded成功登陆后就可以上传镜像[root@huyang1 ~]# docker tag nginx192.168.200.111:5000/nginx:test[root@huyang1 ~]# docker push192.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.confnet.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 startb3ba7fee6e87a25937cfc83b7bec4efeb1e01ee9c2a80fd327ac250f32c3591cf(可以写全称、也可以写缩称,前提是在运行的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 运行过程中存储目录容量不足。
相关文章:
docker容器的基本操作
一、查看Docker的版本信息 [roothuyang1 ~]# docker version 二、查看docker的详细信息 [roothuyang1 ~]# docker info 三、Docker镜像操作 Docker创建容器前需要本地存在对应的镜像,如果本地加载不到相关镜像,Docker默认就会尝试从镜像仓库https://hu…...
MySQL绿色安装和配置
1、 从地址http://dev.mysql.com/downloads/mysql/中选择windows的版本下载。 2、 mysql各个版本的简介 (1) MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 (2) MySQL Enterprise Ed…...
《cuda c编程权威指南》03 - cuda小功能汇总
1. 计时 1.1 linux #include <sys/time.h>double cpuSecond() {struct timeval tp;gettimeofday(&tp, NULL);return ((double)tp.tv_sec (double)tp.tv_usec*1e-6); }// 调用 double start cpuSecond(); kernel_name << <grid, block >> > (ar…...
Java:Java程序通过执行系统命令调用Python脚本
本文实现功能:Java程序调用Python脚本 Python脚本 import sysdef add(x, y):return x yif __name__ "__main__":print(add(int(sys.argv[1]), int(sys.argv[2])))直接执行 $ python math.py 1 2 3Java程序调用Python脚本 package io.github.mouday.…...
this is incompatible with sql_mode=only_full_group_by
查看配置 select global.sql_mode 在sql命令行中输入select sql_mode 能够看到sql_mode配置,如果有ONLY_FULL_GROUP_BY,则需要修改 在mysql5.7.5后,ONLY_FULL_GROUP_BY是默认选项,所以就会导致group by的问题 set sql_mode‘复制去掉ONLY_F…...
GCC编译选项
当使用GCC编译器时,可以根据不同的需求选择适当的编译选项来控制编译过程和生成的代码的行为。以下是一些常见的GCC编译选项的归纳: 优化选项: -O0: 不进行优化,保留原始的C代码结构。-O1: 启用基本优化级别,进行简单…...
信息安全战线左移!智能网联汽车安全亟需“治未病”
当汽车由典型的工业机械产品逐步发展成为全新的智能移动终端,汽车的安全边界发生了根本性改变,信息安全风险和挑战不断增加。 面对复杂的异构网络、异构系统及车规级特异性要求,智能智能网联汽车信息安全到底要如何防护,已经成为…...
服务器介绍
本文章转载与b战up主谈三国圈,仅用于学习讨论,如有侵权,请联系博主 机架型服务器 堆出同时服务百万人次机组 刀型服务器 服务器炸了 比如用户访问量暴增 超过机组的峰值处理能力,进而导致卡顿或炸服, 适合企业的塔式…...
Java_25_方法引用
方法引用 方法引用: 方法引用是为了进一步简化Lambda表达式的写法。 方法引用的格式:类型或者对象::引用的方法。 关键语法是:“::” 小结:方法引用可以进一步简化Lambda表达式的写法。关键语法是:“::”范例代码&…...
QT基于TCP协议实现数据传输以及波形绘制——安卓APP及Windows程序双版本
文章代码有非常非常之详细的解析!!!诸位可放心食用 这个玩意我做了两个,一个是安卓app,一个是Windows程序。代码并非全部都是由我从无到有实现,只是实现了我想要的功能。多亏了巨人的肩膀,开源…...
mac 中 brctl 怎么用
mac 中 brctl 怎么用 mac 中 brctl 怎么用1.使用 Homebrew 安装 bridge2.安装完成后,你可以使用 bridge 命令来管理网络桥接。 mac 中 brctl 怎么用 在 macOS 中,没有官方提供的 brctl 命令行工具。但是,你可以使用一个名为 bridge 的开源工…...
20.2 HTML 常用标签
1. head头部标签 <head>标签用于定义网页的头部, 其中的内容是给浏览器读取和解析的, 并不在网页中直接显示给用户. <head>标签通常包含以下一些常见的子标签: - <title>: 定义网页的标题, 在浏览器的标题栏或标签页上显示. - <meta>: 用于设置网页的…...
mysql_2.5——【约束】详解
1、查看约束 SHOW CREATE TABLE table_name 2、主键约束(PRIMARY KEY) 主键约束最显著的特征是主键列中的值是不允许重复(唯一)的,通过主键约束可强制表 的实体完整性。当创建或更改表时可通过定义 primary key 约束来创建主键。一个表只 能有一个primary key约束…...
回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测
回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLA…...
opencv顺时针,逆时针旋转视频并保存视频
原视频 代码 import cv2# 打开视频文件 video cv2.VideoCapture(inference/video/lianzhang.mp4)# 获取原视频的宽度和高度 width int(video.get(cv2.CAP_PROP_FRAME_WIDTH)) height int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))# 创建视频编写器并设置输出视频参数 fourcc …...
【LeetCode】最小路径和
最小路径和 题目描述算法流程编程代码 链接: 最小路径和 题目描述 算法流程 编程代码 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();vector<vector<int>> dp(m1,vector<in…...
zygote forkSystemServer及systemServer启动
###zygote forkSystemServer方法 通过上一篇文章我们了解到zygote 在ZygoteInit.java类的main方法中调用forkSystemServer方法 UnsupportedAppUsagepublic static void main(String[] argv) {ZygoteServer zygoteServer null;....省略部分代码//根据环境变量(LocalServerSocke…...
享元模式-提供统一实现对象的复用
下围棋时,分为黑白棋子。棋子都一样,这是出现的位置不同而已。如果将每个棋子都作为一个独立的对象存储在内存中,将导致内存空间消耗较大。我们可以将其中不变的部分抽取出来,只存储它的位置信息来实现节约内存。 图 围棋 1 享元模…...
Jenkins工具系列 —— 在Ubuntu 18.04上安装各种版本OpenJDK
文章目录 安装java方式一、使用apt-get工具安装方式二、手动安装java 卸载java各种版本OpenJDK安装包下载 安装java 方式一、使用apt-get工具安装 1、安装各种JAVA版本 若要安装新版本的java11,安装命令: sudo apt install default-jre若选择安装jav…...
vue基础-虚拟dom
vue基础-虚拟dom 1、真实dom目标2、虚拟dom目标 1、真实dom目标 在真实的document对象上,渲染到浏览器上显示的标签。 2、虚拟dom目标 本质是保存节点信息、属性和内容的一个JS对象 更新会监听变化的部分 给真实的DOM打补丁...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...

