docker环境搭建

项目环境搭建

1、安装 Linux 虚拟机

(1)下载安装: VM VirtualBox

  • 下载安装:Downloads – Oracle VM VirtualBox,要先开启CPU虚拟化

在这里插入图片描述

在这里插入图片描述

(2)通过vagrant,在VirtualBox中安装虚拟机

  • 下载安装vagrant
    • 官方镜像仓库:https://app.vagrantup.com/boxes/search
    • vagrant 下载:
      • https://www.vagrantup.com/downloads.html
      • https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.msi
  • 验证vagrant是否成功
vagrant
  • 使用命令快速创建虚拟机
Vagrant init centos/7
# 即初始化一个centos7系统 可在vagrant 镜像仓库官网查看对应的安装系统

在这里插入图片描述

(3)在Linux中安装Docker

  • 卸载旧版本
 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

sudo 超级管理员(最高权限)

  • 注册Docker地址
-- 1安装依赖包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
-- 2docker安装地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 确认

  • 启动docker

sudo systemcli start docker
  • 检查
sudo docker images
  • 设置开机自启
sudo systemctl enable docker

2.配置阿里云镜像加速

  • 阿里云官网https://www.aliyun.com/activity/2024purchase/purchasing_v2/

  • 容器镜像服务/镜像加速器/centos

3.docker安装MYSQL

(1).指定版本下载

sudo docker pull mysql:5.7
// 不加冒号,现在最新版本
// 从docker官网搜索mysql,查看标签

2.检查镜像

sudo docker images

(3).启动容器

  • 在docker中启动一个容器,创建实例并启动
  • 每run 一下,就启动一个容器,容器间隔离
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
  • 参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d mysql:5.7 -d以后台方式运行,使镜像 mysql:5.7 启动容器
--name 设置容器名
/ 换行标
-e 改变一些参数
-v 将mysql的目录表挂载在 Linux外部位置,在外部可见
  • 切换 root 用户
su root
whoami //那个用户

(4).查看docker中容器

所有容器:docker images
正在运行的容器:docker ps

(5).进入docker中的某个容器(以交互模式)

docker exec -it containerID/容器名 /bin/bash
  • 参数说明
    • /bin/bash:bash控制台

(6).测试连接mysql

  • 使用navicat做链接测试

  • 通过容器的 mysql 命令行工具连接

docker exec -it mysql mysql -uroot -proot
  • 设置 root远程访问
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;

(7).进入mysql容器,并配置

  • 查看mysql安装位置
whereis mysql
-- 
mysql: 
/usr/bin/mysql 
/usr/lib/mysql 
/etc/mysql 配置文件
/usr/share/mysql
  • 进入配置文件
vi /mydata/mysql/conf/my.cnf
  • 按 i 进入插入模式
  • 插入配置,修改编码集,默认为拉丁
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
  • 按 wq 保存退出
esc -> shift+: -> wq

(8).重启容器

-- 查看
docker ps
-- 重启
docker restart 容器名
-- 查看文件
cat 文件名

4.docker安装Redis

(1)下载最新版Redis

docker pull redis

(2)创建实例并启动

docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf redis-server加载redis.conf的方式启动-d 后台运行
  • 实例前注意事项
redis.conf 配置文件实际是不存在的,需要在外部创建配置文件,再通过-d进行挂载
  • 实例前准备
-- 创建目录
mkdir -p /mydata/redis/conf
-- 进入目录
cd /mydata/redis/conf/
-- 创建redis.conf
touch redis.conf

(3) 使用 redis 镜像执行 redis-cli 命令测试连接

docker exec -it redis redis-cli

(4)redis持久化

-- 
pwd
-- 列表
ls
-- 修改文件
vi redis.conf
  • 添加 AOF 策略
appendonly yes
  • 重启redis容器
docker restart redis

开发环境统一配置

1.Maven

  • setting.xml 配置
-- 配置阿里云镜像
<mirrors><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
</mirrors>
-- 配置 jdk1.8编译项目 可以不配
<profiles><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile>
</profiles>

2.Idea&VsCode

  • idea
安装 lombok、mybatisx 插件
  • VsCode
Vetur —— 语法高亮、智能感知、Emmet 等
包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl
需要同时按着)
EsLint —— 语法纠错
Auto Close Tag —— 自动闭合 HTML/XML 标签
Auto Rename Tag —— 自动完成另一侧标签的同步修改
JavaScript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快 速 输 入 , 除 js 外 还 支
持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间
HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式
HTML Snippets —— html 快速自动补全
Open in browser —— 浏览器快速打开
Live Server —— 以内嵌服务器方式打开
Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包

3.安装配置 git

  • 详情见
https://blog.csdn.net/weixin_53903929/article/details/130624274

4.使用Git初始化仓库

  • 使用idea将项目交给 Git 进行版本控制

5.创建各个微服务项目

  • 创建5个模块
商品服务、仓储服务、订单服务、优惠券服务、用户服务
  • 相同点
1、web、openfeign
2、每一个服务,包名 com.lfg.xxx(product/order/ware/coupon/member)
3、模块名:glmall

6.使用Maven整合模块

  • 从模块中copy pom.xml
在glmall中添加pom.xml文件
  • 修改
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lfg.glmall</groupId><artifactId>glmall</artifactId><version>0.0.1-SNAPSHOT</version><name>glmall</name><description>整合服务</description><!-- 类型 --><packaging>pom</packaging><!-- 整合 --><modules><module>coupon</module><module>member</module><module>order</module><module>product</module><module>ware</module></modules>
</project>

7.修改glmall中gitgnore模版

-- 忽略提交的文件
# glmall下的任意mvnw
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/# 同级的文件夹
.idea
**/.gitignore

8.提交、推送初始化项

容器设置跟随虚拟机重启

-- 查询docker中所所有容器
docker ps -a
-- 设置容器自动启动 
docker update 容器名 --restart=always
-- 重启虚拟机测试
-- 查看某个容器日志
docker logs -f 容器名

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

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

相关文章

STM32学习和实践笔记(15):STM32中断系统

中断概念 CPU执行程序时&#xff0c;由于发生了某种随机的事件(外部或内部)&#xff0c;引起CPU暂 时中断正在运行的程序&#xff0c;转去执行一段特殊的服务程序(中断服务子程序 或中断处理程序)&#xff0c;以处理该事件&#xff0c;该事件处理完后又返回被中断的程序 继…

MySQL基础-----约束详解

目录 一. 概述: 二.约束演示&#xff1a; 三.外键约束&#xff1a; 3.1介绍&#xff1a; 3.2外键约束语法&#xff1a; 3.3删除&#xff0c;更新行为&#xff1a; 一. 概述: &#x1f9d0;&#x1f9d0;概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制…

css面试题整理

css面试题 一、HTML语义化标签二、块级元素、内联元素、 行内块元素三、盒模型 一、HTML语义化标签 什么是HTML语义化标签&#xff1f;语义化标签的优势&#xff1f; HTML语义化标签顾名思义就是赋予标签含义&#xff0c;比如说<p>标签代表的是段落&#xff0c;还有<…

springboot结合vue实现文件上传下载功能

紧接着上一次的博客&#xff0c;这次来实现一下文件(主要是图片)的上传和下载功能&#xff0c;上一次的博客如下所示&#xff1a; Springboot集成JWT token实现权限验证-CSDN博客 其实文件的上传和下载功能(后端的部分)&#xff0c;在我之前的博客就已经有写了&#xff0c;所以…

LD-Pruner、EdgeFusion(On-Device T2I)、FreeDiff、TextCenGen、MemLLM

本文首发于公众号&#xff1a;机器感知 https://mp.weixin.qq.com/s/KiyNfwYWU-wBiCO-hE9qkA 苏 The devil is in the object boundary: towards annotation-free instance segmentation using Foundation Models Foundation models, pre-trained on a large amount of data…

# 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(1)

从浅入深 学习 SpringCloud 微服务架构&#xff08;三&#xff09;注册中心 Eureka&#xff08;1&#xff09; 段子手168 1、微服务的注册中心 注册中心可以说是微服务架构中的”通讯录”&#xff0c;它记录了服务和服务地址的映射关系。 在分布式架构中服务会注册到这里&am…

Docker使用教程及docker部署Vue项目

什么是Docker及其工作原理 虚拟化技术Docker是什么&#xff1f;三大基本术语核心算法原理和具体操作步骤 Docker和传统虚拟化技术区别为什么使用Docker&#xff1f;Docker有什么作用&#xff1f;1.解决应用部署的环境问题遇到问题达到效果 2.容器化 docker的各种命令解释运行机…

6.GodotCanvasItem、Node2D及自定义节点

CanvasItem节点 CanvasItem节点&#xff0c;CanvasItem -> Node&#xff0c;所以CanvasItem继承了Node的所有功能Canvas是画布的意思&#xff0c;所以CanvasItem代表了就是可以被绘制的节点&#xff0c;可以设置可视化界面和材质的颜色所有的2D节点和GUI节点都继承于CanvasI…

网络行为分析与异常检测

构建防火墙和使用简单的安全解决方案不足以保护网络免受网络异常或攻击&#xff0c;因为DDoS攻击、未知恶意软件和其他安全威胁一直在上升&#xff0c;改变了网络安全格局。网络管理员必须积极主动地分析网络&#xff0c;获得对网络的完全控制&#xff0c;并全面了解网络流量活…

访问云平台中linux系统图形化界面,登录就出现黑屏的问题解决(ubuntu图形界面)

目录 一、问题-图形化界面访问黑屏 二、系统环境 &#xff08;一&#xff09;网络结构示意图 &#xff08;二&#xff09;内部机器版本 三、分析 四、解决过程 &#xff08;一&#xff09;通过MobaXterm远程访问图形化界面(未成功) 1、连接方法 2、连接结果 &#xf…

acwing-y总基础课算法笔记整理

技巧 vector, 变长数组&#xff0c;倍增的思想size() 返回元素个数 capacity() 容量empty() 返回是否为空clear() 清空front()/back()push_back()/pop_back()begin()/end()[]支持比较运算&#xff0c;按字典序pair<int, int>first, 第一个元素second, 第二个元素支持…

pt格式文件转engine小记【yolov5-6.0版本】

背景 项目是使用yolov5-6.0的版本&#xff0c;需要加一个新模型进去&#xff0c;yolov5提供的类别有很多&#xff0c;我这里使用chair椅子。第一步就是先把提供的pt文件转化为tensorrt所需要的engine格式的文件&#xff0c;在官网上有提供转换方法。&#xff08;似乎高版本的y…

查看apk是64位32位(三种方法)

通过检查APK文件&#xff0c;你可以确定该APK支持的架构类型&#xff0c;包括它是为64位&#xff08;例如arm64-v8a、x86_64&#xff09;还是32位&#xff08;例如armeabi-v7a、x86&#xff09;架构准备的。Android应用程序可以包含多个不同的二进制文件&#xff0c;每个文件针…

1097 矩阵行平移(语文题,选做)

输入样例&#xff1a; 7 2 99 11 87 23 67 20 75 89 37 94 27 91 63 50 11 44 38 50 26 40 26 24 73 85 63 28 62 18 68 15 83 27 97 88 25 43 23 78 98 20 30 81 99 77 36 48 59 25 34 22 输出样例&#xff1a; 529 481 479 263 417 342 343 样例解读 需要平移的是第 1、…

【Java】常见锁策略 CAS机制 锁优化策略

前言 在本文会详细介绍各种锁策略、CAS机制以及锁优化策略 不仅仅局限于Java&#xff0c;任何和锁相关的话题&#xff0c;都可能会涉及到下面的内容。 这些特性主要是给锁的实现者来参考的. 普通的程序猿也需要了解一些, 对于合理的使用锁也是有很大帮助的 文章目录 前言✍一、…

Spring Boot 2.x 将 logback 1.2.x 升级至 1.3.x

场景 安全部门针对代码进行漏洞扫描时&#xff0c;发现 logback-core 和 logback-classic 都属于 1.2.x 版本&#xff0c;这个版本存在 CVE 漏洞&#xff0c;并且建议升级到 1.3.x 版本。 问题 将两个包直接升级到 1.3.x 版本时&#xff0c;Spring Boot Web 服务启动直接出现…

CNN卷积神经网络之LeNet-5原理与实战

文章目录 CNN卷积神经网络之LeNet-5原理与实战1、LeNet-5网络结构&#xff1a;1.1、LeNet-5由两个部分组成&#xff1a;1.2、模型单元结构&#xff1a;1.3、数据的传输&#xff1a; 2、LeNet-5网络参数详解&#xff1a; CNN卷积神经网络之LeNet-5原理与实战 1、LeNet-5网络结构…

MySql8快速迁移版的制作过程

首先说明&#xff0c;mysql 8的安装不同与mysql5.x。 做程序的朋友都知道&#xff0c;程序好做&#xff0c;客户难伺候&#xff0c;因为限于用户的情况&#xff0c;如何能让用户把程序运行起来很关键&#xff0c;比如日前我在做 山东高中信息技术 学考 考前练习 系统时&#x…

VirtualBox虚拟机使用win11系统,忘记密码如何重置密码

1. 点击重启同时按住Shift&#xff08;按住不放&#xff09; 2. 直到出现下面的界面&#xff0c;释放Shift&#xff0c;并进入疑难解答 3. 进入高级选项 4. 进入命令提示符 5. 发现当前是在X盘&#xff1f; 6. 进入C:\Windows\System32 c: cd Windows\System32 7. 备份osk.exe…

27个必备的Python技巧,你一定要知道!

目 录 01. 为什么使用缩进来分组语句&#xff1f; Guido van Rossum 认为使用缩进进行分组非常优雅&#xff0c;并且大大提高了普通 Python 程序的清晰度。大多数人在一段时间后就学会并喜欢上这个功能。 由于没有开始/结束括号&#xff0c;因此解析器感知的分组与人…