Linux--Docker容器(最新)

这里写目录标题

  • 安装Docker
    • 安装指令
    • 配置加速器
  • Docker简介
    • 名词解释
    • 作用
    • run命令解读
  • 操作
    • 常见命令
    • 命令的别名
  • 数据卷
    • 简介
    • 数据卷命令
    • 使用
  • 本地目录挂载
    • 问题发现
    • 问题解决
    • 二级目录
    • 二级目录

安装Docker

安装指令

如下文档
https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d

注意因为docker也是一个服务,所以也要启动docker,也可以对Doceker进行开机自启动

配置加速器

仍然在上面文档内
在这里插入图片描述

Docker简介

名词解释

在这里插入图片描述
镜像,就是一个包,将应用本身以及应用运行所需要的环境都打包,形成了镜像
容器,镜像的实例,可以理解为镜像运行时所创建的一个隔离环境,容器之间互不干扰
也就是镜像是一个应用,容器是该应用的各个的运行时的隔离环境,可以理解为应用多开,每个容器都在运行同一个应用
(另一种较为好说法是,镜像就是一个类或者模板,而容器就是他们的实例,相当于实例化对象)
镜像仓库,官方会提供镜像仓库,可以理解为类库,里面有着许多应用的镜像,当然,国内大厂也维护了许多镜像仓库,我们上面因为使用的是阿里云的加速,所以就是阿里云的镜像仓库
Docker主机,运行Docker的虚拟机,也称为宿主机

作用

我们在进行团队开发时,如果遇到有人使用的开发工具的版本不一致,那么会造成许多麻烦,而Docker就保证了应用版本的绝对一致,因为只要是同一个镜像实例化出来的容器,那么就一定是同一个版本

运行思路如下所示:
先从仓库(本地或者云)找到需要的镜像并拉取到宿主机、
之后创建该镜像的容器,给容器命名,该容器就是一个实实在在的应用了

run命令解读

在这里插入图片描述
-d:后台运行
–name 名称 :给容器起个名字
-p :对于-p选项,第一个是宿主机准备开放的端口号,第二个是容器的端口号,其中宿主机端口号可以自定义修改,而容器的端口号轻易不改
-e:设置环境变量,对于mysql来说,必须要设置的环境变量是数据库的密码,具体还有哪些环境变量可以设置可以去官网查阅:hub.docker(访问外网)
最后是指定的运行的镜像的名字

其中,对于p选项:端口映射,
我们可以通过宿主机的ip访问到宿主机,但是无法通过容器的端口访问到容器,所以,如果pc客户端想要访问到容器,可以将容器的端口映射到宿主机的某个端口,通过访问宿主机这个端口,就可以直接访问到容器的端口,也就访问到了容器,如上图

但是镜像完整应该带上版本号,如果不带会默认最新版本:
在这里插入图片描述

操作

常见命令

在这里插入图片描述
注意,这里介绍了一种将自己写的镜像给别人使用的方法:
即,将自己的镜像文件上传到镜像仓库(一般是公司的私服),之后同事就可以从镜像仓库拉取到他们的本地进行使用
案例:
在这里插入图片描述
1、搜索镜像,查看镜像名称,可以进入dockerhub官网进行查文档:
在这里插入图片描述
2、拉取镜像:
docker pull nginx

3、查看本地镜像列表:(确定是否拉取成功)
docker images
该命令会将本地宿主机所有已经下载的镜像展示出来

补充:4、镜像的保存和下载的一种方式:(可以用于自定义镜像在不同电脑之间的转移)
tip:如果忘了一个命令怎么写,可以使用–help 就会显示帮助文档:
在这里插入图片描述

在这里插入图片描述
将镜像文件保存到一个tar包内,之后可以将次tar包用U盘拷到另一台电脑并下载
在这里插入图片描述
在这里插入图片描述
拿到tar包之后,下载该包,就可以下载里面的镜像到本地仓库了

5、创建并运行容器(注意,每次run一次,就会创建新容器)
docker run -d --name nginx -p 80:80 nginx
(无环境变量,无需-e)
在这里插入图片描述
6、查看容器运行状态
docker ps(只能查看运行中的容器)
在这里插入图片描述
docker ps -a(查看所有容器,包括停止的容器)
在这里插入图片描述
7、停掉容器(相当于关闭应用)

在这里插入图片描述
注意,这里只是把容器停止,而不是删除容器,容器虽然被停止,但是还存在

8、运行容器(相当于运行应用)
在这里插入图片描述
9、查看日志
docker logs nginx
docker logs -f nginx(持续访问nginx日志)
在这里插入图片描述
当持续访问nginx日志时,会实时更新nginx的日志,
例如,我们通过pc端的浏览器访问虚拟机的开放映射的端口
在这里插入图片描述
可以进行访问,这条访问信息就会在控制台进行更新显示
注意,要想访问到虚拟机的本地ip的80端口(不写默认80),需要将虚拟机的防火墙关闭,或者开放80端口的防火墙

10、进入容器
docker exec -it nginx bsah(表示进入容器的命令行窗口)
在这里插入图片描述
之后就可以在这个界面,进行mysql的一些操作
在这里插入图片描述
首先登录,可以进入到mysql客户端
在这里插入图片描述
之后可以执行show databases

输入exit 就退出mysql客户端,到了当前容器命令行
再次输入exit,就退出容器,到了操作系统

11、删除容器
在这里插入图片描述
docker rm 容器名
(注意不是rmi rmi是用来删除镜像的)
我们不可以删除正在运行的容器,
第一种方法,将容器停掉,再去删除
第二种方法,强制删除。docker rm -f mysql

命令的别名

在这里插入图片描述
使用vi编辑器,进入到root账户下 ~/.bashrc目录,如下:
在这里插入图片描述
进来之后,alias 别名=‘原始名’
可以使用此方法,将图示第四个优化显示方法的命令,改为dps
https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec

数据卷

简介

在这里插入图片描述
宿主机中的目录(一般是固定的)与数据卷进行映射,而数据卷与容器中指定目录形成映射,从而也就是宿主机的目录与容器中的指定目录形成双向映射

向宿主机中的目录增删改查,那么映射到的容器的指定目录会实时同步

数据卷命令

在这里插入图片描述
小tip:使用–help可以直接显示出帮助文档
在这里插入图片描述

使用

在这里插入图片描述
在这里插入图片描述
先删除原有容器(因为要再创建一般,当然如果创建不同的容器,则不用再删除)
之后在run命令里,加一个-v 数据卷名字:容器内指定目录
(数据卷名字可以随意起)
在这里插入图片描述
创建完之后,可以通过docker volume inspect 数据卷名字
来查看宿主机的哪个目录与数据卷建立了链接,一般这个路径是固定的

可以通过宿主机的ip加上图片路径,访问到图片,具体原因:?
在这里插入图片描述

在这里插入图片描述

本地目录挂载

问题发现

在这里插入图片描述
之前我们使用过docker volume inspect html ,表示查看数据卷的详情
现在不加volume 表示查看容器的详情
在这里插入图片描述
我们之前已经对容器nginx进行过挂载,所以显示没问题
在这里插入图片描述
但是我们之前没有对mysql挂载,他这里却显示挂载,说明系统自动进行了挂载,称为匿名挂载(有一些容器会进行自动挂载)
但是这种挂载的数据卷名字很复杂,并且当更新容器版本时,容易造成数据的丢失,所以要使用本地挂载对其进行解决

问题解决

在这里插入图片描述
当完成挂载之后,我们去宿主机查询data目录,里面会有容器的对应的文件内容
同时,修改宿主机的本地挂载目录,数据库的内容也会被更改

其中mysql容器的数据目录、配置文件目录、初始化脚本目录等等,都需要去官方文档查看

二级目录

二级目录

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

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

相关文章

C# ref传参与out传参

在 C# 中,ref 和 out 都是用于传递参数的关键字 1、ref 关键字: ref 用于将一个变量传递给方法,并允许方法修改该变量的值。 调用方法时,必须先初始化被 ref 修饰的变量,否则会编译错误。 方法内部可以不给 ref 参数重…

【教3妹学编程-算法题】反转二叉树的奇数层

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 3妹:“你不是真正的快乐, 你的…

开具实习证明:在线实习项目介绍

大数据在线实习项目,是在线上为学生提供实习经验的项目。我们希望能够帮助想要在毕业后从事数据科学类工作的学生更加顺利地适应从教室到职场的转换;也帮助那些在工作中需要处理数据、实现数据价值的其他职能的从业者高效快速地掌握每天都能用起来的数据…

代码求解方程

说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 求解一个给定的方程,将x以字符串 “x#value” 的形式返回。该方程仅包含 ‘’ &…

【5】基于多设计模式下的同步异步日志系统-代码设计

8. 代码设计 8.1 实用类设计 提前完成⼀些零碎的功能接⼝,以便于项⽬中会⽤到。 • 获取系统时间 • 判断⽂件是否存在 • 获取⽂件的所在⽬录路径 • 创建⽬录 /* 通⽤功能类,与业务⽆关的功能实现1. 获取系统时间2. 获取⽂件⼤⼩3. 创建⽬录4. 获取⽂…

SuperMap iClient3D for Cesium 实现鼠标移动选中模型并显示模型对应字段

SuperMap iClient3D for cesium 实现鼠标移动选中模型并显示模型对应字段 一、实现思路二、数据制作1. 计算出模型中心点并保存到属性表中2. 计算出模型顶部高程3. 模型数据切缓存4. 发布三维服务. 三、代码编写 作者:xkf 一、实现思路 将模型属性数据存储到前端&a…

深度学习环境配置

一、Anaconda安装 下载:从清华大学开源软件镜像下载 镜像网址 出现base即为安装成功: 检查显卡的驱动是否正确安装: (GPU可以显示出名称) GPU0是集显集成显卡是主板自带的显卡。 GPU1是独显即独立显卡&#xff0c…

[渗透测试学习] Codify - HackTheBox

首先nmap扫描端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.239扫出来三个端口,22端口为ssh服务,80端口有http服务,3000端口为nodejs框架 尝试访问下80端口,发现页面重定向 将该域名添加到hosts里 sudo vim /etc/hosts 成…

el-table的复选框占满全格

el-table的复选框格子很小每次点击都点不到&#xff0c;又不想设置行点击&#xff0c;因为每次复制内容都会选中&#xff0c;实现效果是点击el-table的复选框单元格就可以选中 <template><div style"width: 60vw; margin: 10px;"><el-table :data&quo…

Java小案例-RocketMQ的11种消息类型,你知道几种?(延迟消息)

前言 上一节给大家讲了Rocket的顺序消息&#xff0c;这一节和大家聊一下延迟消息&#xff0c;关于顺序消息大家可以点下面这个链接直接看 RocketMQ的延迟消息 延迟消息 延迟消息就是指生产者发送消息之后&#xff0c;消息不会立马被消费&#xff0c;而是等待一定的时间之后…

计算机硬件 3.3其他存储设备

第三节 其他存储设备 一、固态硬盘&#xff08;SSD&#xff09; 1.优点&#xff1a;读写速度快、防震抗摔、低功耗、无噪声、轻便。 2.缺点&#xff1a;容量小、寿命限制、售价高。 3.接口&#xff1a;SATA3、M.2、Type-C、mSATA等。 4.分类&#xff1a;盒装式、插卡式。 二…

十五 动手学深度学习v2计算机视觉 ——全连接神经网络FCN

文章目录 FCN FCN 全卷积网络先使用卷积神经网络抽取图像特征&#xff0c;然后通过卷积层将通道数变换为类别个数&#xff0c;最后通过转置卷积层将特征图的高和宽变换为输入图像的尺寸。 因此&#xff0c;模型输出与输入图像的高和宽相同&#xff0c;且最终输出通道包含了该空…

海思平台isp之ccm标定

文章目录 1、raw图采集2、ccm标定2.1、标定参数配置2.2、标定效果优化2.2.1、优化方式一2.2.2、优化方式二2.2.3、优化方式三1、raw图采集 raw图采集步骤及标准,请参考文章 《海思平台isp之ccm标定》。2、ccm标定 2.1、标定参数配置 (1)图像基本参数 (2)黑电平设置 (…

Spring-MVC-文件上传下载

依赖 <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version> </dependency> <dependency><groupId>javax.servlet</groupId><artif…

mac视频调色 DaVinci Resolve Studio 18 中文 for Mac

DaVinci Resolve Studio 18是一款功能强大、专业可靠的视频编辑软件&#xff0c;适用于各种规模的媒体项目制作。无论是独立制片人还是大型制片公司&#xff0c;都可以借助该软件进行高质量的视频创作和后期制作。 得编辑工作更加高效和灵活。 调色和色彩校正&#xff1a;软件…

国外博士论文下载网址

系列文章目录 前言 如果你想补充其他相关网址&#xff0c;请留言 一、pqdtcn 1.1 使用说明 浏览本数据库建议使用chrome浏览器&#xff01; ProQuest检索平台在今年暑假做了界面升级。为了使您能更快了解升级后的界面功能&#xff0c;ProQuest公司准备了中文版用户使用手册…

【CSS】前端点点点加载小点样式css动画过程实现

对话的 ... 加载动画&#xff0c;直接用 CSS 就可以实现&#xff0c;样式可以自己改&#xff0c;逻辑大差不差 <div class"loading-text"><span class"dot1"></span><span class"dot2"></span><span class&quo…

RabbitMQ入门案例

RabbitMQ 是目前比较主流的MQ消息队列中间件&#xff0c;下面简单总结RabbitMQ入门时所做的一些笔记 1.RabbitMQ 入门案例 需求&#xff1a;用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者 1.1 添加依赖 <!--rabbitmq 依赖客户端--> <de…

Java 线程创建的方法和原理

创建线程 方法一&#xff1a;Thread 类 创建Thread类的对象&#xff0c;重写其中的 run 方法&#xff1a; Slf4j(topic "c.Test1") public class d1_Thread {public static void main(String[] args) {// 创建 Thread 类的对象Thread t new Thread(){Overridepu…

SQL进阶理论篇(六):索引的使用原则

文章目录 简介什么时候创建索引&#xff1f;什么时候不需要创建索引索引在什么情况下会失效索引使用举例&#xff08;兴趣篇&#xff09;参考文献 简介 如何通过索引让查询效率最大化呢&#xff1f;本节主要考虑以下几个问题&#xff1a; 什么样的情况下需要创建索引&#xf…