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

docker 复习

文章目录

  • 1. docker 基础
    • 1.1 docker 安装
      • 配置镜像加速器
      • 拉取镜像的仓库:
    • docker 部署Mysql 镜像
    • docker 命令的详细解释
    • docker 常见命令
    • docker 数据卷
      • docker 相关命令总结
  • 2.自定义镜像
    • 2.1 dockerfile
    • 2.2 try 构建一个Java镜像,并部署
    • 2.3 总结:
  • 3. docker 网络
    • 自定义网络
  • 项目部署
    • 后端部署
    • 前端部署

1. docker 基础

1.1 docker 安装

  1. 查看是否安装的镜像已经在系统中存在: docker images (存在2,不存在 3)

  2. 卸载旧版本 yum remove docker

  3. 首先安装 yum 工具
    yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken

    -y是yum 的一个命令,表示在安装软件包的时候不需要用户确认。使用 -y 选线会自动回答 yes 来确认安装
    --skip-broken:这是yum命令的另一个选项。当使用–skip-broken选项时,yum会尝试安装尽可能多的软件包,而不会停止在遇到依赖问题或错误的软件包上。
    lvm2:这是要安装的第三个软件包的名称。lvm2是Logical Volume Manager的一个实现,用于管理磁盘卷和逻辑卷。

  4. 设置docker 镜像
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    sed -i 's/download.docker.com/mirrors.aliyun.com/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
    yum makecache

  5. 安装docker,安装docker时直接安装docker-compose (安装docker时直接安装docker-compose)

  6. systemctl stop firewalld ,启动docker,要关闭防火墙

  7. systemctl disable firewalld 禁止开机启动防火墙

  8. 查看防火墙状态 systemctl status firewalld

  9. 启动docker systemctl start docker

  10. 查看docker的状态:systemctl status docker

  11. 查看docker 的版本 docker -v
    还没结束哦!!看接下来的…

配置镜像加速器

  1. tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] } EOF 复制内容,注意把其中的镜像加速地址改成你自己的
  2. sudo systemctl daemon-reload 重新加载
  3. sudo systemctl restart docker 重启docker
    在这里插入图片描述

拉取镜像的仓库:

https://hub.docker.com/

docker 本身也是一个拂服务,输入的一切命令都是发给进程的。

docker 部署Mysql 镜像

按照下图运行即可:

docker run
–name mysql
-e MYSQL_ROOT_PASSWORD=密码
-p 3309:3306 – 端口映射
-v /root/images/mysqlImage/tmp/mysql/conf/hmy.cnf://etc/mysql/conf.d/hmy.cnf
-v /root/images/mysqlImage/tmp/mysql/data:/var/lib/mysql -d mysql:5.7.25

在这里插入图片描述

注:

  • 当我们利用docker 安装应用的时候,docker 会自动搜索并下载应用镜像,镜像不仅包含应用本身,还包含应用运行所需要的环境、配置 、函数库。docker 会在运行镜像时创建一个隔离环境,称为容器。
  • 运行镜像时创建一个隔离环境,因此可以开启多个服务。

在这里插入图片描述

docker 命令的详细解释

在这里插入图片描述

  • -d 服务器在后台运行
  • --name 容器名:给容器起一个名字
  • -p 宿主机端口():容器内端口(进程不需要改动) 转到容器内部
  • -e key = value eviorment -e 配置环境变量 ,由镜像的制作者
  • mysql:版本号 镜像的名称,版本号

docker 常见命令

docker 最常见的命令就是操作镜像,容器的命令,详见官方文档: https://docs.docker.com

https://docs.docker.com/engine/reference/run/ 直接到官方命令文档

  • docker pull 从镜像中拉取镜像
  • docker images 查看所有镜像
  • docker rmi 删除镜像
  • docker rm 删除容器
  • docker build 自己构建镜像
  • docker save 将自己构建的镜像通过 命令 保存到本地,形成一个压缩文件。
  • docker load 拿到压缩包,解压用
  • docker push 推送到镜像仓库中
  • docker exec 进入容器

在这里插入图片描述

**注意:

  • **docker stop 相当于停止的时容器内部的进程。容器还在 下次运行可以用 docker start 运行。
  • docker run 运行一个新的容器

案例实现:

  1. 去docker hub 中搜索nginx 拉取nginx镜像 docker pull nginx
  2. 查看镜像 docker images
  3. 创建并运行容器 docker run -d --name nginxnana -p 80:80 nginx
  4. 查看运行的容器 docker ps
  5. 停掉容器 docker stop 容器名
  6. 查看容器日志docker logs -f nginxnana
  7. 进入容器内部 docker exec -it 容器名 bash
  8. 退出容器 exit
  9. 删除容器 docker rm 容器名 -f -f 强制删除
  10. 还有命令的别名,可以自己研究~~~

docker 数据卷

定义: 容器内目录与宿主机目录的之间的映射的桥梁。

在这里插入图片描述

案例: 创建一个nginx

在这里插入图片描述

  • 创建有挂载数据卷的 nginx 容器
    在这里插入图片描述

  • 查看数据卷详细信息 docker volume inspect 数据卷名称
    在这里插入图片描述

案例2
在这里插入图片描述
查看mysql 是是否有数据卷挂载

  • docker inspect 容器名
    Mouth 放的是挂载的信息在这里插入图片描述
    基于数组机目录实现Mysql 数据目录,配置文件,初始化脚本的挂载。
    在使用 docker run 的时候,使用-v 本地目录:容器内目录 可以完成本地目录的挂在

docker 相关命令总结

  • docker images : 查看镜像
  • docker rmi :删除镜像
  • docker push: 推送镜像到镜像服务器
  • docker save :会将镜像保存为一个压缩包,可以用U盘拷贝,之后docker load 加载压缩包为镜像。
  • docker inspect 容器名 : 查看docker 容器

2.自定义镜像

镜像中的概念:

  1. 镜像是分层的
  2. 基础镜像不用每次下载
  3. 入口

在这里插入图片描述

在这里插入图片描述

2.1 dockerfile

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

当我们编写好了dockerfile,可以用命令请去构建镜像: docker build -t myImage.1.0 .

  • -t 是给构建的镜像起名字,格式: repository:tag, 不指定tag,默认为latest
  • . 是指定dockerfile 所在的目录,如果就在当前目录则指定为 .

2.2 try 构建一个Java镜像,并部署

  1. 将文件打为jar包,上传到linux中:
  2. 加载镜像docker load -i
  3. 构建镜像: docker build -t 镜像名字 dockerfile文件名
  4. 运行: docker run -d --name 名字 -p 端口映射 镜像名字
  5. docker ps 查看运行状态
  6. docker logs -f 容器名

在这里插入图片描述

访问: ip:端口号/路径

2.3 总结:

在这里插入图片描述

3. docker 网络

docker inspect 容器名称: 查看某个容器的配置
配置中有 NetWork 网络的配置。

分析: 在安装docker 的时候,docker 会在虚拟机中创建虚拟网卡,名字默认是docker0 .
在这里插入图片描述

如上图,每个容器虽然是独立的,但是因为通过 docker 建立了连接(是同一网络段的),因此可以相互访问。测试:通过进入容器,对其他容器 ping ip地址

但是上面的通过ip ping 的是有风险的,如果一个容器关闭了,新的容器启动占用了上一个容器的ip地址,这时候就ping 不通了,因此这样不合适。因此出现了 自定义网络

自定义网络

加入自定义网络 直接 ping 容器名称就可以,即使 ip 改变也可以ping的通
在这里插入图片描述

  • docker network ls
  • docker network create 名字
  • ip addr
  • docker network connect 网络名 网段名让容器加入网络
  • docker run -d -name 名字 -p 映射端口:端口 --network 网络名称 镜像名称启动容器的时候就是指定连接的网络

注意: 部署项目的时候容器互联的问题就解决了。

项目部署

后端部署

  1. 项目打包为jar包
  2. 构建镜像 docker build -t 名字:tag dockerfile
  3. 运行容器 docker run -d --name 名字 -p 端口映射:端口 --netwok 网络名称 镜像名称
  4. 查看日志前面有讲过

前端部署

创建一个nginx 容器,提供的nginx.conf、html目录与容器挂载

  1. docker run -d --name nginx -p 18080:18080 -p 18081:18081 -v 宿主路径:/usr/share/nginx/html -v 宿主文件:/etc/nginx/nginx.conf --netwok 网络名称 nginx

11111

相关文章:

docker 复习

文章目录 1. docker 基础1.1 docker 安装配置镜像加速器拉取镜像的仓库&#xff1a; docker 部署Mysql 镜像docker 命令的详细解释docker 常见命令docker 数据卷docker 相关命令总结 2.自定义镜像2.1 dockerfile2.2 try 构建一个Java镜像&#xff0c;并部署2.3 总结: 3. docker…...

React之事件机制与事件绑定

一&#xff0c;时间机制 是什么 React基于浏览器的事件机制自身实现了一套事件机制&#xff0c;包括事件注册、事件的合成、事件冒泡、事件派发等 在React中这套事件机制被称之为合成事件 合成事件&#xff08;SyntheticEvent&#xff09; 合成事件是 React模拟原生 DOM事…...

spark stream入门案例:netcat准实时处理wordCount(scala 编程)

目录 案例需求 代码 结果 解析 案例需求&#xff1a; 使用netcat工具向9999端口不断的发送数据&#xff0c;通过SparkStreaming读取端口数据并统计不同单词出现的次数 -- 1. Spark从socket中获取数据&#xff1a;一行一行的获取 -- 2. Driver程序执行时&#xff0c…...

Ansible基础及模块

Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作&#xff0c;使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作 Ansible是基于模块工作的&#xff0c;它…...

Atlassian Confluence OGNL表达式注入RCE CVE-2021-26084

影响版本 All 4.x.x versions All 5.x.x versions All 6.0.x versions All 6.1.x versions All 6.2.x versions All 6.3.x versions All 6.4.x versions All 6.5.x versions All 6.6.x versions All 6.7.x versions All 6.8.x versions All 6.9.x versions All 6.1…...

【c语言】编译链接--详解

文章目录 一.程序的翻译环境和运行环境二.翻译环境&#xff1a;预编译编译汇编链接&#xff08;一&#xff09;预编译&#xff08;二&#xff09;编译1&#xff09;词法分析2&#xff09;语法分析3&#xff09;语义分析 &#xff08;三&#xff09;汇编(四&#xff09;链接1.编…...

国家开放大学 训练题

试卷代号&#xff1a;2044 教育研究方法 参考试题&#xff08;开卷&#xff09; 一、单选题&#xff08;每题5分&#xff0c;共25分&#xff09; 1.探索性研究常采用的研究方式包括&#xff08; &#xff09;。 A.文献调查、经验调查、典型情况或个案分析 B.调查性研究、…...

【灵动 Mini-G0001开发板】+Keil5开发环境搭建+ST-Link/V2程序下载和仿真+4颗LED100ms闪烁。

我们拿到手里的是【灵动 Mini-G0001开发板】 如下图 我们去官网下载开发板对应资料MM32G0001官网 我们需要下载Mini—G0001开发板的库函数与例程&#xff08;第一手学习资料&#xff09;Keil支持包&#xff0c; PCB文件有需要的&#xff0c;可以自行下载。用户指南需要下载&a…...

同为科技(TOWE)关于风力发电雷电防护的解决方案

风能作为一种可再生清洁能源&#xff0c;是国家新能源发展战略的重要组成部分。我国风能开发潜力高达2.510GW以上&#xff0c;近年来风力发电机组逐年增加&#xff0c;截止到2022年&#xff0c;全国风电装机容量约3.5亿千瓦&#xff0c;同比增长16.6%。然而&#xff0c;由于风力…...

gorm 中的事务运用

使用背景 在编写业务代码的过程中,如果涉及到多张表的更新操作,为了确保数据的一致性,我们会在业务代码的过程中加上事务的控制,那么针对go 语言中,如果我们使用gorm框架改如何操作呢? gorm中使用事务的几种方式 方式一(业务层事务)func NewTransaction() *gorm.DB {re…...

maven 新建模块 导入后 按Ctrl 点不进新建模块pom定义

新建的ruoyi-common-mybatisplus 模块,导入一直不正常 画出的模块一直导入不进来 这是提示信息 这是正常的提示信息 加上 <version>3.6.3</version> 后,才一切正常...

idea使用debug无法启动,使用run可以启动

1、将调试断点清除 使用快捷键ctrl shift F8&#xff0c;将勾选的选项去除即可 2、Error running SampleApplication: Command line is too long. Shorten command line for SampleApplication or also for Spring Boot default configuration&#xff0c;报这种错误&#x…...

进程的虚拟地址空间

一、 对于C/C程序员&#xff0c;我们看到的程序中的地址&#xff0c;都不是物理地址&#xff0c;而是操作系统映射的虚拟地址/线性地址&#xff0c;每一个进程都映射了同样结构的虚拟地址空间&#xff0c;让进程以为自己在独享内存资源&#xff0c;下图是以Linux下32位操作系统…...

做web自动化测试遇到Chrome浏览器老是自动更新,怎么办 ? 这里提供两个解决办法 。

web自动化安装驱动安装 进行web自动化时 &#xff0c;需要提前安装浏览器的驱动 &#xff0c;尤其是chrome浏览器 。它的更新速度很快 &#xff0c;是不是更新了新版本 。这就导致我们的驱动也要跟着变化。 1.停止自动更新 那么 &#xff0c;如何关闭chrome浏览器的自动更新…...

腾讯HR面试

一、如何看待腾讯的愿景 腾讯的愿景是成为“最受尊敬的互联网企业”&#xff0c;这一愿景表明了腾讯的目标是成为一个在互联网领域内具有极高影响力和声誉的企业。 为了实现这一愿景&#xff0c;腾讯坚持以长远的眼光、诚信负责的操守、共同成长的理念来发展公司的事业。这种…...

过滤器(Filter)和拦截器(Interceptor)有什么不同?

过滤器&#xff08;Filter&#xff09;和拦截器&#xff08;Interceptor&#xff09;是用于处理请求和响应的中间件组件&#xff0c;但它们在实现方式和应用场景上有一些不同。 实现方式: 过滤器是Servlet规范中定义的一种组件&#xff0c;通常以Java类的形式实现。过滤器通过在…...

Spring 注解 @Qualifier 详解

目录 1. 概述 2. 痛点 3. Qualifier 4. Qualifier VS Primary 5. 通过名称来自动注入 1. 概述 今天带你了解一下 Spring 框架中的 Qualifier 注解&#xff0c;它解决了哪些问题&#xff0c;以及如何使用它。我们还将了解它与 Primary 注解的不同之处。更多的技术解析请访…...

实现更低功耗R5F51406BDNE、R5F51406ADFK、R5F51406ADFL、R5F51406AGFN搭载RXv2内核的32位微控制器

一、简介 RX140产品群是RX100系列中处理性能最强、功耗最低的微控制器。可以广泛应用于家用电器、工业控制和楼宇自动化等领域。RX140采用RXv2内核&#xff0c;工作频率最高48MHz&#xff0c;处理性能是32MHz运行的RX130的近两倍。此外&#xff0c;它在运行时的电路为56μA/MH…...

通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、ZF&#xff08;零迫&#xff09;算法 4.2、ML&#xff08;最大似然&#xff09;算法 4.3、MRC&#xff08;最大比合并&#xff09;算法 4.4、MMSE&#xff08;最小均方误差&#xff…...

Redis数据结构之listpack

前言 当数据量较小时&#xff0c;Redis 会优先考虑用 ziplist 来存储 hash、list、zset&#xff0c;这么做可以有效的节省内存空间&#xff0c;因为 ziplist 是一块连续的内存空间&#xff0c;它采用一种紧凑的方式来存储元素。但是它也有缺点&#xff0c;比如查找的时间复杂度…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...