当前位置: 首页 > news >正文

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》中提出以来,已成为最具影响力的技术之一。这种模型设计的核心是自注意力机制,它允许模型在处理序列数据时&#xf…...

宠物健康新守护:智能听诊器引领科技突破

在宠物护理领域,一项令人瞩目的科技创新正逐渐兴起,那便是智能听诊器。这款革命性的设备以前所未有的准确性和便利性,为宠物主人提供了一种全新的健康监测体验。 只需将智能听诊器轻轻放置在爱宠的身上,它便立即开始工作&#xf…...

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 对象上。 以下是一个示例&#xff…...

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&#xf…...

框架设计MVVM

重点&#xff1a; 1.viewmodel 包含model 2.view包含viewmodel,通过驱动viewmodel去控制model的数据和业务逻辑 // Test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector>using namespace std;#p…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接&#xff1a;【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...