Docker基本讲解及演示
Docker安装教程
Docker安装教程
1、Docker介绍
Docker是一个开源的应用容器引擎,允许开发者将应用程序及其依赖项打包成一个轻量级、可移植的容器,然后发布到任何支持 Docker 的环境中运行,无论是开发机、测试机还是生产环境。
Docker基于沙箱技术,每个容器都有自己的独立运行环境,包括操作系统、库文件、配置等,实现了资源隔离和轻量级迁移。
2、Docker三要素
- 镜像(image):镜像就是一个只读的模板,包含了运行容器所需的文件系统、配置参数、库和运行时环境等。
- 容器(container):容器是代码的隔离环境,可以理解为一台独立的服务器
- 仓库(repository):仓库中存储了一堆镜像,可以拉取或向其推送镜像
3、Docker常用命令

一:docker本身相关命令
- 启动 docker
systemctl start docker
- 关闭 docker
systemctl stop docker
- 重新启动 docker
systemctl restart docker
- 查看 docker 运行状态
systemctl status docker
- 查看 docker 版本
docker -v
二:镜像(image)
1.镜像的查看、搜索、拉取、删除
- 列出本地所有镜像【查看】
docker images
结果展示:REPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 605c77e624dd 2 years ago 141MBmysql latest 3218b38490ce 2 years ago 516MB...
- 搜索镜像
docker search 镜像名 # 搜索与【镜像名】匹配的镜像
如:docker search nginx
- 拉取镜像
docker pull 镜像名:版本号
如:docker pull nginx # 不写版本默认为最新版
- 删除镜像
docker rmi 镜像名
如:docker rmi nginx # 删除 ngnix 镜像
2.移植镜像
- 保存镜像
docker save -o nginx.tar nginx #将镜像nginx导出,形成本地文件nginx.tar.tar
注意:移植到其他服务器记得给tar包加上可读权限
- 加载镜像
docker load -i nginx.tar #将镜像nginx从本地文件nginx.tar中加载出来
三:容器(container)
1.容器的查看、创建、启动、关闭、重启、删除
- 查看容器
docker ps # 查看已安装并正在运行的容器
docker ps -a # 查看所有容器
- 创建容器并运行
docker run 配置 别名
常用配置:--name=NAME # 为容器指定名字为NAME,不使用的话系统自动为容器命名【容器名】--restart=always # 容器退出后自动重新启动,保证容器服务的可靠性和持续可用性。--privileged=true # 授予容器内进程访问宿主机上所有设备的权限-p 容器端口号:主机端口号 # 指定端口映射-v 文件夹:文件夹 # 目录的映射【docker容器与虚拟机共享同一个目录】-d IMAGE_ID # 后台运行容器并返回容器ID,即启动守护式容器(后台运行)# 创建并允许 Nginx 容器
docker run --name nginx -p 80:80 -d 605c77e624dd nginx
- 启动容器
docker start 容器名
如:docker start nginx
- 关闭容器
docker stop 容器名
如:docker stop nginx
- 重启容器
docker restart 容器名
如:docker restart nginx
- 删除容器
docker rm 容器名
如:docker rm nginx
2.查看容器日志
docker logs 容器名
如:docker logs ngnix
3.容器重命名
docker rename 原来的容器名 新的容器名
4.进入与退出指定容器
# 进入指定容器
docker exec -it 【IMAGE_ID|容器名】 /bin/bash
如:docker exec -it 3218b38490ce /bin/bash 【进入mysql】# 退出容器【从容器回到虚拟机】
exit
4、Docker的实际演示
一:mysql安装
docker search mysql # 找到合适的mysql镜像
docker pull mysql # 下载镜像(默认最新版本)# 安装mysql容器并运行
docker run \--name mysql8 \ --restart=always \--privileged=true \-e MYSQL_ROOT_PASSWORD='123456' \-p 3306:3306 \-v /opt/software/mysql_docker_3308:/mysql_share \-d 3218b38490cedocker ps # 查看已安装并正在运行容器
docker exec -it mysql8 /bin/bash # 进入mysql容器
exit # 退出mysql容器
主要参数讲解:
--name mysql8:给容器取名为mysql8
--restart=always:每当docker启动时总能启动mysql8容器
-e MYSQL_ROOT_PASSWORD:mysql密码
-p 3308:3306:映射容器的3306端口到宿主机的3308端口,外部主机可以直接通过宿主机ip:3308访问到容器的mysql8服务。
-d 3218b38490ce:后台模式下运行指定容器【-d 镜像ID】
Docker中的Mysql与外网连接测试:

二:Redis安装
docker search redis # 找到合适的redis镜像
docker pull redis # 下载redis镜像(默认最新版本)# 安装redis容器并运行
docker run \--name Redis \--restart=always \--privileged=true \-e MY_REDIS_PASSWORD='123456' \-p 6379:6379 \-d 7614ae9453d1docker ps # 查看正在运行的容器
docker exec -it mysql8 /bin/bash # 进入redis容器
exit # 退出redis容器
主要参数讲解:
--name Redis:给容器取名为Redis
--restart=always:每当docker启动时总能启动Redis容器
-e MY_REDIS_PASSWORD:设置Redis的访问密码为123456
-p 6379:6379:映射容器的6379端口到宿主机的6379端口,外部主机可以直接通过宿主机ip:6379访问到容器的Redis服务。
-d 7614ae9453d1:后台模式下运行指定容器【-d 镜像ID】
相关文章:
Docker基本讲解及演示
Docker安装教程 Docker安装教程 1、Docker介绍 Docker是一个开源的应用容器引擎,允许开发者将应用程序及其依赖项打包成一个轻量级、可移植的容器,然后发布到任何支持 Docker 的环境中运行,无论是开发机、测试机还是生产环境。 Docker基于…...
各类专业技术的pdf电子书
从业多年,收集了海量的pdf电子书籍,感兴趣的私聊。...
【Linux】多线程_9
文章目录 九、多线程10. 线程池 未完待续 九、多线程 10. 线程池 这里我没实现一些 懒汉单例模式 的线程池,并且包含 日志打印 的线程池: Makefile: threadpool:Main.ccg -o $ $^ -stdc11 -lpthread .PHONY:clean clean:rm -f threadpoolT…...
LabVIEW设备检修信息管理系统
开发了基于LabVIEW设计平台开发的设备检修信息管理系统。该系统应用于各种设备的检修基地,通过与基地管理信息系统的连接和数据交换,实现了本地检修工位数据的远程自动化管理,提高了设备的检修效率和安全性。 项目背景 现代设备运维过程中信…...
python爬虫基础:使用lxml库进行HTML解析和数据提取的实践指南
使用lxml库进行HTML解析和数据提取的实践指南 在Python编程中,网页抓取和数据提取是一项常见任务。lxml库因其高效性和强大的XPath支持,成为了处理HTML和XML文档的优选工具。本文将带你了解如何使用lxml来解析HTML文档并提取所需数据。 1. 安装lxml库 …...
大语言模型系列:Transformer
在自然语言处理(NLP)领域,Transformer模型自2017年由Vaswani等人在论文《Attention Is All You Need》中提出以来,已成为最具影响力的技术之一。这种模型设计的核心是自注意力机制,它允许模型在处理序列数据时…...
宠物健康新守护:智能听诊器引领科技突破
在宠物护理领域,一项令人瞩目的科技创新正逐渐兴起,那便是智能听诊器。这款革命性的设备以前所未有的准确性和便利性,为宠物主人提供了一种全新的健康监测体验。 只需将智能听诊器轻轻放置在爱宠的身上,它便立即开始工作…...
KITTI 3D 数据可视化
引言 KITTI 视觉基准测试套件(KITTI Vision Benchmark Suite)提供了大量用于理解自动驾驶场景的工具。尤其是3D数据可视化在分析和解释传感器(如激光雷达)与环境的复杂交互中起到了至关重要的作用。本文将详细探讨KITTI数据集中3…...
旅游数据可视化:免费工具让复杂数据变得简单易懂
随着旅游业的蓬勃发展,海量的数据如同繁星点点,记录着每一位旅者的足迹与偏好。然而,如何将这些复杂的数据转化为直观、易懂的信息,为旅游企业精准决策、为消费者提供更加个性化的服务,成为了行业内外共同关注的焦点。…...
数据结构进阶:使用链表实现栈和队列详解与示例(C, C#, C++)
文章目录 1、 栈与队列简介栈(Stack)队列(Queue) 2、使用链表实现栈C语言实现C#语言实现C语言实现 3、使用链表实现队列C语言实现C#语言实现C语言实现 4、链表实现栈和队列的性能分析时间复杂度空间复杂度性能特点与其他实现的比较…...
【线程系列之五】线程池介绍C语言
一、基本概念 1.1 概念 线程池(Thread Pool)是一种基于池化技术管理线程的机制,旨在减少线程创建和销毁的开销,提高系统资源的利用率,以及更好地控制系统中同时运行的线程数量。线程池通过预先创建一定数量的线程&am…...
【学习css3】使用flex和grid实现等高元素布局
过往的实现方法是使用浮动加计算布局来实现,当flex和grid问世时,这一切将变得简单起来 一、简单的两列实现 1、先看页面效果 2、css代码 .container {padding: 10px;width: 100ch;margin: 0 auto;box-shadow: inset 0 0 0 2px #ccc;}.column {margin: 2…...
如何防止Eclipse格式化程序在行注释开头插入空格
格式化前: //foo bar 格式化后: // foo bar 这种看着不是很舒服。如果不让格式化时自动在注释符后面插入空格呢? 要在Eclipse中进行代码格式化时防止在行注释(//)后面自动增加空格,可以通过调整…...
Nextjs 调用组件内的方法
在 Next.js 中,如果你想从一个组件外部调用组件内部的方法,可以使用 React 的 useRef 钩子来引用组件实例并调用其方法。这种方法主要适用于类组件,但也可以用于函数组件,通过将方法暴露在 ref 对象上。 以下是一个示例ÿ…...
ip地址是电脑还是网线决定的
在数字化时代的浪潮中,网络已经成为了我们日常生活和工作不可或缺的一部分。当我们谈论网络时,IP地址无疑是一个核心的概念。然而,关于IP地址的分配和决定因素,很多人可能存在误解。有些人认为IP地址是由电脑决定的,而…...
Hadoop中HDFS、Hive 和 HBase三者之间的关系
HDFS(Hadoop Distributed File System)、Hive 和 HBase 是 Hadoop 生态系统中三个重要的组件,它们各自解决了大数据存储和处理的不同层面的问题。我们用大白话来解释这三个组件之间的关系: HDFS - 数据的仓库: HDFS 是…...
opencv—常用函数学习_“干货“_10
目录 二七、离散余弦变换 执行离散余弦变换 (dct) 和逆变换 (idct) 解释 实际应用 JPEG压缩示例(简化版) 二八、图像几何变换 仿射变换 (warpAffine 和 getAffineTransform) 透视变换 (warpPerspective 和 getPerspectiveTransform) 旋转变换 (g…...
Jmeter二次开发Demo
Jmeter二次开发Demo 前言 在上一集,我们已经完成了JMX脚本的分析,大致了解了JMX脚本的基本元素。 那么在这一集,我们将会介绍一下Jmeter二次开发的Demo。 Demo代码 那么话不多说,我们就直接上代码。 public class TestStress…...
MongoDB综合实战篇(超容易)
一、题目引入 在MongoDB的gk集合里插入以下数据: 用语句完成如下功能: (1)查询张三同学的成绩信息 (2)查询李四同学的语文成绩 (3)查询没有选化学的同学 (4…...
框架设计MVVM
重点: 1.viewmodel 包含model 2.view包含viewmodel,通过驱动viewmodel去控制model的数据和业务逻辑 // Test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector>using namespace std;#p…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
