2023-09-22 21:57:28 +08:00
<!DOCTYPE html> < html lang = "zh-CN" data-theme = "light" > < head > < meta charset = "UTF-8" > < meta http-equiv = "X-UA-Compatible" content = "IE=edge" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0,viewport-fit=cover" > < title > Linux中开发环境的搭建 | The Blog< / title > < meta name = "author" content = "Jason" > < meta name = "copyright" content = "Jason" > < meta name = "format-detection" content = "telephone=no" > < meta name = "theme-color" content = "#ffffff" > < meta name = "description" content = "环境搭建" >
< meta property = "og:type" content = "article" >
< meta property = "og:title" content = "Linux中开发环境的搭建" >
2024-05-10 10:21:35 +08:00
< meta property = "og:url" content = "https://qingling.icu/posts/20683.html" >
2023-09-22 21:57:28 +08:00
< meta property = "og:site_name" content = "The Blog" >
< meta property = "og:description" content = "环境搭建" >
< meta property = "og:locale" content = "zh_CN" >
2024-06-14 22:00:25 +08:00
< meta property = "og:image" content = "https://qingling.icu/img/8.png" >
2023-09-22 21:57:28 +08:00
< meta property = "article:published_time" content = "2023-06-05T02:17:19.000Z" >
2024-05-10 13:32:25 +08:00
< meta property = "article:modified_time" content = "2024-05-10T05:31:11.669Z" >
2023-09-22 21:57:28 +08:00
< meta property = "article:author" content = "Jason" >
2024-05-11 18:00:18 +08:00
< meta property = "article:tag" content = "环境搭建" >
2024-05-11 18:05:53 +08:00
< meta property = "article:tag" content = "Linux" >
2023-09-22 21:57:28 +08:00
< meta name = "twitter:card" content = "summary" >
2024-06-14 22:00:25 +08:00
< meta name = "twitter:image" content = "https://qingling.icu/img/8.png" > < link rel = "shortcut icon" href = "/img/%E5%9B%BE%E6%A0%87.png" > < link rel = "canonical" href = "https://qingling.icu/posts/20683.html" > < link rel = "preconnect" href = "//fastly.jsdelivr.net" / > < link rel = "preconnect" href = "//busuanzi.ibruce.info" / > < link rel = "stylesheet" href = "/css/index.css" > < link rel = "stylesheet" href = "/cdn/icon/fontawesome-free/css/all.min.css" media = "print" onload = "this.media='all'" > < link rel = "stylesheet" href = "/cdn/css/snackbar.min.css" media = "print" onload = "this.media='all'" > < link rel = "stylesheet" href = "/cdn/css/fancybox.min.css" media = "print" onload = "this.media='all'" > < script > c o n s t G L O B A L _ C O N F I G = {
2023-09-22 21:57:28 +08:00
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":true,"top_n_per_article":1,"unescape":false,"languages":{"hits_empty":"找不到您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":400},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: true,
post: true
},
runtime: '天',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'mediumZoom',
2023-12-09 14:21:01 +08:00
Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#006650","bgDark":"#006650","position":"top-center"},
2023-09-22 21:57:28 +08:00
source: {
justifiedGallery: {
2023-09-30 18:36:25 +08:00
js: 'https://fastly.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
css: 'https://fastly.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
2023-09-22 21:57:28 +08:00
}
},
isPhotoFigcaption: false,
islazyload: false,
2023-12-10 21:57:00 +08:00
isAnchor: true,
2023-09-22 21:57:28 +08:00
percent: {
toc: true,
rightside: false,
},
2023-12-09 19:59:36 +08:00
autoDarkmode: true
2023-09-22 21:57:28 +08:00
}< / script > < script id = "config-diff" > v a r G L O B A L _ C O N F I G _ S I T E = {
title: 'Linux中开发环境的搭建',
isPost: true,
isHome: false,
isHighlightShrink: false,
isToc: true,
2024-05-10 13:32:25 +08:00
postUpdate: '2024-05-10 13:31:11'
2023-09-22 21:57:28 +08:00
}< / script > < noscript > < style type = "text/css" >
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
< / style > < / noscript > < script > ( w i n = > {
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState & & loadState !== 'loaded' & & loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState & & loadState !== 'loaded' & & loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
2023-12-09 19:59:36 +08:00
const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
const hasNoSupport = !isDarkMode & & !isLightMode & & !isNotSpecified
if (t === undefined) {
if (isLightMode) activateLightMode()
else if (isDarkMode) activateDarkMode()
else if (isNotSpecified || hasNoSupport) {
const now = new Date()
const hour = now.getHours()
const isNight = hour < = 8 || hour >= 22
isNight ? activateDarkMode() : activateLightMode()
}
window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
if (saveToLocal.get('theme') === undefined) {
e.matches ? activateDarkMode() : activateLightMode()
}
})
} else if (t === 'light') activateLightMode()
else activateDarkMode()
2023-09-22 21:57:28 +08:00
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
2024-06-14 22:00:25 +08:00
})(window)< / script > < script src = "https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" > < / script > < script type = "text/javascript" src = "/js/welcome.js" > < / script > < script src = "/js/sweetalert.js" > < / script > < link rel = "stylesheet" href = "/css/sweetalert.css" > <!-- hexo injector head_end start --> < link rel = "stylesheet" href = "https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.css" media = "print" onload = "this.media='all'" > < link rel = "stylesheet" href = "https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiperstyle.css" media = "print" onload = "this.media='all'" > <!-- hexo injector head_end end --> < meta name = "generator" content = "Hexo 6.3.0" > < / head > < body > < div id = "sidebar" > < div id = "menu-mask" > < / div > < div id = "sidebar-menus" > < div class = "avatar-img is-center" > < img src = "/img/avatar.jpg" onerror = "onerror=null;src='/img/loading.gif'" alt = "avatar" / > < / div > < div class = "sidebar-site-data site-data is-center" > < a href = "/archives/" > < div class = "headline" > 文章< / div > < div class = "length-num" > 60< / div > < / a > < a href = "/tags/" > < div class = "headline" > 标签< / div > < div class = "length-num" > 39< / div > < / a > < a href = "/categories/" > < div class = "headline" > 分类< / div > < div class = "length-num" > 10< / div > < / a > < / div > < br / > < div class = "menus_items" > < div class = "menus_item" > < a class = "site-page" target = "_blank" rel = "noopener" href = "https://www.tutorialspoint.com/compile_java8_online.php" > < i class = "fa-fw fas fa-code" > < / i > < span > 代码< / span > < / a > < / div > < div class = "menus_item" > < a class = "site-page" href = "/notice/" > < i class = "fa-fw fas fa-stream" > < / i > < span > 公告< / span > < / a > < / div > < div class = "menus_item" > < a class = "site-page" href = "/website/" > < i class = "fa-fw fas fa-list" > < / i > < span > 网址< / span > < / a > < / div > < div class = "menus_item" > < a class = "site-page" href = "/" > < i class = "fa-fw fas fa-home" > < / i > < span > 主页< / span > < / a > < / div > < / div > < / div > < / div > < div class = "post" id = "body-wrap" > < header class = "not-top-img" id = "page-header" > < nav id = "nav" > < span id = "blog-info" > < a href = "/" title = "The Blog" > < img class = "site-icon" src = "/img/logo.png" / > < span class = "site-name" > The Blog< / span > < / a > < / span > < div id = "menus" > < div id = "search-button" > < a class = "site-page social-icon search" href = "javascript:void(0);" > < i class = "fas fa-search fa-fw" > < / i > < span > 搜索< / span > < / a > < / div > < div class = "menus_items" > < div class = "menus_item" > < a class = "site-page" target = "_blank" rel = "noopener" href = "https://www.tutorialspoint.com/compile_java8_online.php" > < i class = "fa-fw fas fa-code" > < / i > < span > 代码< / span > < / a > < / div > < div class = "menus_item" > < a class = "site-page" href = "/notice/" > < i class = "fa-fw fas fa-stream" > < / i > < span > 公告< / span > < / a > < / div > < div class = "menus_item" > < a class = "site-page" href = "/website/" > < i class = "fa-fw fas fa-list" > < / i > < span > 网址< / span > < / a > < / div > < div class = "menus_item" > < a class = "site-page" href = "/" > < i class = "fa-fw fas fa-home" > < / i > < span > 主页< / span > < / a > < / div > < / div > < div id = "toggle-menu" > < a class = "site-page" href = "javascript:void(0);" > < i class = "fas fa-bars fa-fw" > < / i > < / a > < / div > < / div > < / nav > < / header > < main class = "layout" id = "content-inner" > < div id = "post" > < div id = "post-info" > < h1 class = "post-title" > Linux中开发环境的搭建< / h1 > < div id = "post-meta" > < div class = "meta-firstline" > < span class = "post-meta-date" > < i class = "far fa-calendar-alt fa-fw post-meta-icon" > < / i > < span class = "post-meta-label" > 发表于< / span > < time class = "post-meta-date-created" datetime = "2023-06-05T02:17:19.000Z" title = "发表于 2023-06-05 10:17:19" > 2023-06-05< / time > < span class = "post-meta-separator" > |< / span > < i class = "fas fa-history fa-fw post-meta-icon" > < / i > < span class = "post-meta-label" > 更新于< / span > < time class = "post-meta-date-updated" datetime = "2024-05-10T05:31:11.669Z" title = "更新于 2024-05-10 13:31:11" > 2024-05-10< / time > < / span > < span class = "post-meta-categories" > < span class = "post-meta-separator" > |< / span > < i class = "fas fa-inbox fa-fw post-meta-icon" > < / i > < a class = "post-meta-categories" href = "/categories/%E8%BF%90%E7%BB%B4/" > 运维< / a > < / span > < / div > < div class = "meta-secondline" > < span class = "post-meta-separator" > |< / span > < span class = "post-meta-wordcount" > < i class = "far fa-file-word fa-fw post-meta-icon" > < / i > < span class = "post-meta-label" > 字数总计:< / span > < span class = "
2023-09-22 21:57:28 +08:00
< h2 id = "二-配置Java环境" > < a href = "#二-配置Java环境" class = "headerlink" title = "二.配置Java环境" > < / a > 二.配置Java环境< / h2 > < p > < strong > 2.1.删除自带的JDK< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 查看系统是否有java环境< / span > < / span > < br > < span class = "line" > java -version< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 查找Linux中已有的java环境的相关文件< / span > < / span > < br > < span class = "line" > rpm -qa |grep java< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 执行命令 删除上面的java文件< / span > < / span > < br > < span class = "line" > rpm -e --nodeps +上面查找出来的文件< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > < strong > 2.2.安装JDK< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 创建一个文件夹, 将JDK8上传到这个文件夹中去< / span > < / span > < br > < span class = "line" > mkdir /opt/jdk< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 解压上传的压缩包 解压后得到一个名为jdk1.8.0_261的文件夹< / span > < / span > < br > < span class = "line" > tar -zvxf jdk-8u261-linux-x64.tar.gz< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 创建一个目录, 作为java的安装目录< / span > < / span > < br > < span class = "line" > mkdir /usr/local/java< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 将解压后的文件移动到这个安装目录中去< / span > < / span > < br > < span class = "line" > mv jdk1.8.0_261/ /usr/local/java/< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 配置环境变量< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 进入环境变量的配置文件中< / span > < / span > < br > < span class = "line" > vim /etc/profile< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 在文件的最后添加如下的配置< / span > < / span > < br > < span class = "line" > export JAVA_HOME=/usr/local/java/jdk1.8.0_261< / span > < br > < span class = "line" > export PATH=$JAVA_HOME/bin:$PATH< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 刷新配置文件,让新的环境变量生效< / span > < / span > < br > < span class = "line" > source /etc/profile< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
2024-05-10 13:32:25 +08:00
< h2 id = "三-使用Docker安装常用软件" > < a href = "#三-使用Docker安装常用软件" class = "headerlink" title = "三.使用Docker安装常用软件" > < / a > 三.使用Docker安装常用软件< / h2 > < p > < a href = "https://qingling.icu/posts/19306.html" > < strong > Docker容器化技术 | The Blog (qingling.icu)< / strong > < / a > < / p >
2023-09-22 21:57:28 +08:00
< h3 id = "3-1-Docker的安装" > < a href = "#3-1-Docker的安装" class = "headerlink" title = "3.1 Docker的安装" > < / a > < strong > 3.1 Docker的安装< / strong > < / h3 > < p > < strong > 3.1.1 安装Docker< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 1、yum 包更新到最新< / span > < / span > < br > < span class = "line" > yum update< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 2、安装需要的软件包, yum-util 提供yum-config-manager功能, 另外两个是devicemapper驱动依赖的< / span > < / span > < br > < span class = "line" > yum install -y yum-utils device-mapper-persistent-data lvm2< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 3、 设置yum源< / span > < / span > < br > < span class = "line" > yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 4、 安装docker, 出现输入的界面都按 y< / span > < / span > < br > < span class = "line" > yum install -y docker-ce< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 5、 查看docker版本, 验证是否验证成功< / span > < / span > < br > < span class = "line" > docker -v< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > < strong > 3.1.2 配置镜像加速服务< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 1.创建相关的目录< / span > < / span > < br > < span class = "line" > sudo mkdir -p /etc/docker< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 2, 加入配置< / span > < / span > < br > < span class = "line" > sudo tee /etc/docker/daemon.json < < -' EOF' < / span > < br > < span class = "line" > { < / span > < br > < span class = "line" > " registry-mirrors" : [" https://cagfgua5.mirror.aliyuncs.com" ]< / span > < br > < span class = "line" > } < / span > < br > < span class = "line" > EOF< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 3.重新加载,让配置文件生效< / span > < / span > < br > < span class = "line" > sudo systemctl daemon-reload< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 4.重新启动Docker服务< / span > < / span > < br > < span class = "line" > sudo systemctl restart docker< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > < strong > 3.1.3 启动Docker服务< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 启动docker服务:< / span > < / span > < br > < span class = "line" > systemctl start docker < / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 停止docker服务:< / span > < / span > < br > < span class = "line" > systemctl stop docker < / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 重启docker服务:< / span > < / span > < br > < span class = "line" > systemctl restart docker< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 查看docker服务状态:< / span > < / span > < br > < span class = "line" > systemctl status docker < / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 设置开机启动docker服务:< / span > < / span > < br > < span class = "line" > systemctl enable docker< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< h3 id = "3-2-使用Docker安装Mysql" > < a href = "#3-2-使用Docker安装Mysql" class = "headerlink" title = "3.2 使用Docker安装Mysql" > < / a > 3.2 使用Docker安装Mysql< / h3 > < figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < span class = "line" > 21< / span > < br > < span class = "line" > 22< / span > < br > < span class = "line" > 23< / span > < br > < span class = "line" > 24< / span > < br > < span class = "line" > 25< / span > < br > < span class = "line" > 26< / span > < br > < span class = "line" > 27< / span > < br > < span class = "line" > 28< / span > < br > < span class = "line" > 29< / span > < br > < span class = "line" > 30< / span > < br > < span class = "line" > 31< / span > < br > < span class = "line" > 32< / span > < br > < span class = "line" > 33< / span > < br > < span class = "line" > 34< / span > < br > < span class = "line" > 35< / span > < br > < span class = "line" > 36< / span > < br > < span class = "line" > 37< / span > < br > < span class = "line" > 38< / span > < br > < span class = "line" > 39< / span > < br > < span class = "line" > 40< / span > < br > < span class = "line" > 41< / span > < br > < span class = "line" > 42< / span > < br > < span class = "line" > 43< / span > < br > < span class = "line" > 44< / span > < br > < span class = "line" > 45< / span > < br > < span class = "line" > 46< / span > < br > < span class = "line" > 47< / span > < br > < span class = "line" > 48< / span > < br > < span class = "line" > 49< / span > < br > < span class = "line" > 50< / span > < br > < span class = "line" > 51< / span > < br > < span class = "line" > 52< / span > < br > < span class = "line" > 53< / span > < br > < span class = "line" > 54< / span > < br > < span class = "line" > 55< / span > < br > < span class = "line" > 56< / span > < br > < span class = "line" > 57< / span > < br > < span class = "line" > 58< / span > < br > < span class = "line" > 59< / span > < br > < span class = "line" > 60< / span > < br > < span class = "line" > 61< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 下载mysql的镜像文件 这里以下载mysql5.7为例< / span > < / span > < br > < span class = "line" > docker pull mysql:5.7< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 查看是否下载成功< / span > < / span > < br > < span class = "line" > docker images< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 使用MySQL的镜像启动一个容器< / span > < / span > < br > < span class = "line" > docker run -p 3306:3306 --name mysql \< / span > < br > < span class = "line" > -v /mydata/mysql/log:/var/log/mysql \< / span > < br > < span class = "line" > -v /mydata/mysql/data:/var/lib/mysql \< / span > < br > < span class = "line" > -v /mydata/mysql/conf:/etc/mysql \< / span > < br > < span class = "line" > -e MYSQL_ROOT_PASSWORD=root \< / span > < br > < span class = "line" > -d mysql:5.7< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 参数说明< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > -p 3306:3306: 将容器的 3306 端口映射到主机的 3306 端口< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > -v /mydata/mysql/conf:/etc/mysql: 将配置文件夹挂载到主机< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > -v /mydata/mysql/log:/var/log/mysql: 将日志文件夹挂载到主机< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" >
< h3 id = "3-3-使用Docker安装Redis" > < a href = "#3-3-使用Docker安装Redis" class = "headerlink" title = "3.3 使用Docker安装Redis" > < / a > 3.3 使用Docker安装Redis< / h3 > < figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < span class = "line" > 21< / span > < br > < span class = "line" > 22< / span > < br > < span class = "line" > 23< / span > < br > < span class = "line" > 24< / span > < br > < span class = "line" > 25< / span > < br > < span class = "line" > 26< / span > < br > < span class = "line" > 27< / span > < br > < span class = "line" > 28< / span > < br > < span class = "line" > 29< / span > < br > < span class = "line" > 30< / span > < br > < span class = "line" > 31< / span > < br > < span class = "line" > 32< / span > < br > < span class = "line" > 33< / span > < br > < span class = "line" > 34< / span > < br > < span class = "line" > 35< / span > < br > < span class = "line" > 36< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 下载redis的镜像文件 直接下载最新的< / span > < / span > < br > < span class = "line" > docker pull redis< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 创建redis挂载在宿主机的配置文件和目录< / span > < / span > < br > < span class = "line" > mkdir -p /mydata/redis/conf #创建目录< / span > < br > < span class = "line" > touch /mydata/redis/conf/redis.conf #创建配置文件< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 创建并启动容器 这是以配置文件的方式启动 \前面有一个空格< / span > < / span > < br > < span class = "line" > docker run -p 6379:6379 --name redis \< / span > < br > < span class = "line" > -v /mydata/redis/data:/data \< / span > < br > < span class = "line" > -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \< / span > < br > < span class = "line" > -d redis redis-server /etc/redis/redis.conf< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 检查容器的运行情况< / span > < / span > < br > < span class = "line" > docker ps< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 测试客户端的使用< / span > < / span > < br > < span class = "line" > docker exec -it redis redis-cli< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 可以在redis客户端中使用如下命令< / span > < / span > < br > < span class = "line" > 127.0.0.1:6379> set name tom #存值< / span > < br > < span class = "line" > OK< / span > < br > < span class = "line" > 127.0.0.1:6379> get name #取值< / span > < br > < span class = "line" > " tom" < / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > redis中的数据不能持久化 关机重启之后数据会丢失< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 通过以下的配置 实现redis的持久化操作 AOF的持久化< / span > < / span > < br > < span class = "line" > vi /mydata/redis/conf/redis.conf #修改之前创建的配置文件< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 添加如下配置< / span > < / span > < br > < span class = "line" > appendonly yes< / span > < br > < span class = "line" > < span
< h3 id = "3-4-使用Docker安装ElasticSearch" > < a href = "#3-4-使用Docker安装ElasticSearch" class = "headerlink" title = "3.4 使用Docker安装ElasticSearch" > < / a > 3.4 使用Docker安装ElasticSearch< / h3 > < p > < strong > 3.4.1 安装ElasticSearch< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < span class = "line" > 21< / span > < br > < span class = "line" > 22< / span > < br > < span class = "line" > 23< / span > < br > < span class = "line" > 24< / span > < br > < span class = "line" > 25< / span > < br > < span class = "line" > 26< / span > < br > < span class = "line" > 27< / span > < br > < span class = "line" > 28< / span > < br > < span class = "line" > 29< / span > < br > < span class = "line" > 30< / span > < br > < span class = "line" > 31< / span > < br > < span class = "line" > 32< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 拉取ElasticSearch< / span > < / span > < br > < span class = "line" > docker pull elasticsearch:7.4.2< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > ES的配置文件存放的位置< / span > < / span > < br > < span class = "line" > mkdir -p /mydata/elasticsearch/config< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > ES相关的数据< / span > < / span > < br > < span class = "line" > mkdir -p /mydata/elasticsearch/data< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 将< span class = "string" > " http.host: 0.0.0.0" < / span > (可以被任何的机器访问)的配置写入elasticsearch.yml中( 注意冒号后面的空格) < / span > < / span > < br > < span class = "line" > echo " http.host: 0.0.0.0" > > /mydata/elasticsearch/config/elasticsearch.yml< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 设置文件的权限< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 递归更改权限, es需要访问< / span > < / span > < br > < span class = "line" > chmod -R 777 /mydata/elasticsearch/< / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 运行容器的命令 9200端口用于发送请求使用 9300端口用于集群中节点中的通信使用< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 单节点运行< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 初始占用64m, 最大占用5m( 不指定, ES会占用所有的内存) < / span > < / span > < br > < span class = "line" > docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \< / span > < br > < span class = "line" > -e " discovery.type=single-node" \< / span > < br > < span class = "line" > -e ES_JAVA_OPTS=" -Xms64m -Xmx512m" \< / span > < br > < span class = "line" > -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \< / span > < br > < span class = "line" > -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \< / span > < br > < span class = "line" > -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \< / span > < br > < span class = "line" > -d elasticsearch:7.4.2 < / span > < br > < span class = "line" > < span class = "meta prompt_" > < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 设置开机启动elasticsearch< / span > < / span > < br > < span class = "line" > docker update elasticsearch --restart=always< / span > < br > < span class = "line
< p > 安装成功之后:< / p >
< p > < img src = "/pictures/image-20230628191936254.png" alt = "image-20230628191936254" > < / p >
< p > < strong > 3.4.2 安装Kibana(可视化界面)< / strong > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 拉取Kibana< / span > < / span > < br > < span class = "line" > docker pull kibana:7.4.2< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 这里-e是自己的elasticsearch服务地址( 这里的地址一定要改为自己虚拟机的地址) < / span > < / span > < br > < span class = "line" > docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.195.100:9200 -p 5601:5601 -d kibana:7.4.2< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 设置开机启动kibana< / span > < / span > < br > < span class = "line" > docker update kibana --restart=always< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 访问对应的网址查看服务< / span > < / span > < br > < span class = "line" > http://虚拟机的ip:5601< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > 安装成功之后< / p >
< p > < img src = "/pictures/image-20230701104616032.png" alt = "image-20230701104616032" > < / p >
< p > < strong > 3.4.3 安装IK分词器< / strong > < / p >
< p > 安装地址: < a target = "_blank" rel = "noopener" href = "https://github.com/medcl/elasticsearch-analysis-ik" > https://github.com/medcl/elasticsearch-analysis-ik< / a > < / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < span class = "line" > 21< / span > < br > < span class = "line" > 22< / span > < br > < span class = "line" > 23< / span > < br > < span class = "line" > 24< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 切换到es挂载在注解的plugins目录< / span > < / span > < br > < span class = "line" > cd /mydata/elasticsearch/plugins/< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 安装wget< / span > < / span > < br > < span class = "line" > yum install wget < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 下载ik分词器的压缩包(下载的速度不是很快(5分钟左右),建议本地下载好了之后,上传上去)< / span > < / span > < br > < span class = "line" > wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 进入容器内部查看一下文件是否同步到了容器的内部< / span > < / span > < br > < span class = "line" > docker exec -it 容器Id /bin/bash< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 切换到plugins目录中去,这时目录中也存在elasticsearch-analysis-ik-7.4.2.zip这个压缩包< / span > < / span > < br > < span class = "line" > cd plugins/ #使用ls查看一下< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 退出容器< / span > < / span > < br > < span class = "line" > exit< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 在主机下解压elasticsearch-analysis-ik-7.4.2.zip这个压缩包< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > zip的解压需要使用unzip解压命令 这里我们可以直接在本地解压一下 上传到plugins目录( 解压的文件名为ik) < / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 安装unzip< / span > < / span > < br > < span class = "line" > yum install -y unzip< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 查看ik分词器是否安装成功< / span > < / span > < br > < span class = "line" > docker exec -it 容器Id /bin/bash< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 切换到bin目录< / span > < / span > < br > < span class = "line" > cd bin/< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 执行下面的命令, 有ik显示即为安装成功< / span > < / span > < br > < span class = "line" > elasticsearch-plugin list< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 退出容器,重启一下< / span > < / span > < br > < span class = "line" > docker restart elasticsearch< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
2024-01-01 20:04:04 +08:00
< h3 id = "3-5-使用Docker安装nginx" > < a href = "#3-5-使用Docker安装nginx" class = "headerlink" title = "3.5 使用Docker安装nginx" > < / a > 3.5 使用Docker安装nginx< / h3 > < p > 方法一:< / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 创建nginx容器挂载的目录< / span > < / span > < br > < span class = "line" > mkdir /mydata/nginx/conf< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 拉取nginx的镜像< / span > < / span > < br > < span class = "line" > docker pull nginx:1.10< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 随便启动一个nginx实例, 为了复制其配置< / span > < / span > < br > < span class = "line" > docker run -p 80:80 --name nginx -d nginx:1.10< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 将容器内的配置文件拷贝到conf目录(注意这里有个点和空格)< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 注意在nginx的目录下操作,(成功之后/mydata/nginx/conf目录下会有相应的配置文件和目录)< / span > < / span > < br > < span class = "line" > docker container cp nginx:/etc/nginx /mydata/nginx/conf< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 停掉并删除之前的启动的nginx< / span > < / span > < br > < span class = "line" > docker stop nginx< / span > < br > < span class = "line" > docker rm nginx< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 正式的启动容器< / span > < / span > < br > < span class = "line" > docker run -p 80:80 --name nginx \< / span > < br > < span class = "line" > -v /mydata/nginx/html:/usr/share/nginx/html \< / span > < br > < span class = "line" > -v /mydata/nginx/logs:/var/log/nginx \< / span > < br > < span class = "line" > -v /mydata/nginx/conf:/etc/nginx \< / span > < br > < span class = "line" > -d nginx:1.10< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 设置开机启动nginx< / span > < / span > < br > < span class = "line" > docker update nginx --restart=always< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > 方法二< / p >
< p > 先在宿主机的/ opt/ nginx/ conf/ 目录下创建nginx.conf配置文件并加入相关的配置< / p >
< figure class = "highlight properties" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < span class = "line" > 14< / span > < br > < span class = "line" > 15< / span > < br > < span class = "line" > 16< / span > < br > < span class = "line" > 17< / span > < br > < span class = "line" > 18< / span > < br > < span class = "line" > 19< / span > < br > < span class = "line" > 20< / span > < br > < span class = "line" > 21< / span > < br > < span class = "line" > 22< / span > < br > < span class = "line" > 23< / span > < br > < span class = "line" > 24< / span > < br > < span class = "line" > 25< / span > < br > < span class = "line" > 26< / span > < br > < span class = "line" > 27< / span > < br > < span class = "line" > 28< / span > < br > < span class = "line" > 29< / span > < br > < span class = "line" > 30< / span > < br > < span class = "line" > 31< / span > < br > < span class = "line" > 32< / span > < br > < span class = "line" > 33< / span > < br > < span class = "line" > 34< / span > < br > < span class = "line" > 35< / span > < br > < span class = "line" > 36< / span > < br > < span class = "line" > 37< / span > < br > < span class = "line" > 38< / span > < br > < span class = "line" > 39< / span > < br > < span class = "line" > 40< / span > < br > < span class = "line" > 41< / span > < br > < span class = "line" > 42< / span > < br > < span class = "line" > 43< / span > < br > < span class = "line" > 44< / span > < br > < span class = "line" > 45< / span > < br > < span class = "line" > 46< / span > < br > < span class = "line" > 47< / span > < br > < span class = "line" > 48< / span > < br > < span class = "line" > 49< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "attr" > user< / span > < span class = "string" > root;< / span > < / span > < br > < span class = "line" > < span class = "attr" > worker_processes< / span > < span class = "string" > 1;< / span > < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > < span class = "attr" > events< / span > < span class = "string" > { < / span > < / span > < br > < span class = "line" > < span class = "attr" > worker_connections< / span > < span class = "string" > 1024;< / span > < / span > < br > < span class = "line" > < span class = "attr" > } < / span > < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > < span class = "attr" > http< / span > < span class = "string" > { < / span > < / span > < br > < span class = "line" > < span class = "attr" > include< / span > < span class = "string" > mime.types;< / span > < / span > < br > < span class = "line" > < span class = "attr" > default_type< / span > < span class = "string" > application/octet-stream;< / span > < / span > < br > < span class = "line" > < span class = "attr" > sendfile< / span > < span class = "string" > on;< / span > < / span > < br > < span class = "line" > < span class = "attr" > keepalive_timeout< / span > < span class = "string" > 65;< / span > < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > < span class = "attr" > server< / span > < span class = "string" > { < / span > < / span > < br > < span class = "line" > < span class = "attr" > listen< / span > < span class = "string" > 80;< / span > < / span > < br > < span class = "line" > < span class = "attr" > server_name< / span > < span class = "string" > localhost;< / span > < / span > < br > < span class = "line" > < span class = "attr" > charset< / span > < span class = "string" > utf-8;< / span > < / span > < br > < span class = "line" > < span class = "comment" > < / span > < / span > < br > < span class = "line" > < span class = "comment" > # set site favicon< / span > < / span > < br > < span class = "line" > < span class = "comment" > # 这里的路径时容器的路径,不是宿主机的路径< / span > < / span > < br > < span class = "line" > < span class = "attr" > location< / span > < span class = "string" > /favicon.ico { < / span > < / span > < br > < span class = "line" > < span class = "attr" > root< / span > < span class = "string" > /usr/share/nginx/html/dist;< / span > < / span > < br > < span class = "line" > < span class = "attr" > } < / span > < / span > < br > < span class = "line" > < / span > < br > < span class = "line" > < span class = "attr" > location< / span > < span class = "string" > / { < / span > < / span > < br > < span class = "line" > < span class = "comment" > # 这里的路径时容器的路径,不是宿主机的路径< / span > < /span
< p > 创建容器< / p >
< figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > docker run -id --name=nginx \< / span > < br > < span class = "line" > -p 80:80 \< / span > < br > < span class = "line" > -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \< / span > < br > < span class = "line" > -v /opt/nginx/logs:/var/log/nginx \< / span > < br > < span class = "line" > -v /opt/nginx/html:/usr/share/nginx/html \< / span > < br > < span class = "line" > nginx< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
2023-09-22 21:57:28 +08:00
< h3 id = "3-6-使用Docker安装RabbitMQ" > < a href = "#3-6-使用Docker安装RabbitMQ" class = "headerlink" title = "3.6 使用Docker安装RabbitMQ" > < / a > 3.6 使用Docker安装RabbitMQ< / h3 > < figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < span class = "line" > 6< / span > < br > < span class = "line" > 7< / span > < br > < span class = "line" > 8< / span > < br > < span class = "line" > 9< / span > < br > < span class = "line" > 10< / span > < br > < span class = "line" > 11< / span > < br > < span class = "line" > 12< / span > < br > < span class = "line" > 13< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 直接执行运行rabbitMQ容器的命令,没有镜像会自动下载< / span > < / span > < br > < span class = "line" > docker run -d --name rabbitmq \< / span > < br > < span class = "line" > -p 5671:5671 \< / span > < br > < span class = "line" > -p 5672:5672 \< / span > < br > < span class = "line" > -p 4369:4369 \< / span > < br > < span class = "line" > -p 25672:25672 \< / span > < br > < span class = "line" > -p 15671:15671 \< / span > < br > < span class = "line" > -p 15672:15672 \< / span > < br > < span class = "line" > rabbitmq:management< / span > < br > < span class = "line" > < span class = "meta prompt_" > # < / span > < span class = "language-bash" > 设置开机启动rabbitmq< / span > < / span > < br > < span class = "line" > docker update rabbitmq --restart=always< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 测试访问< / span > < / span > < br > < span class = "line" > 虚拟机的ip:15672< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > 账号:guest< / p >
< p > 密码:guest< / p >
< p > < img src = "/pictures/image-20230717123217404.png" alt = "image-20230717123217404" > < / p >
< h3 id = "3-7-使用docker安装nacos" > < a href = "#3-7-使用docker安装nacos" class = "headerlink" title = "3.7 使用docker安装nacos" > < / a > 3.7 使用docker安装nacos< / h3 > < figure class = "highlight shell" > < table > < tr > < td class = "gutter" > < pre > < span class = "line" > 1< / span > < br > < span class = "line" > 2< / span > < br > < span class = "line" > 3< / span > < br > < span class = "line" > 4< / span > < br > < span class = "line" > 5< / span > < br > < / pre > < / td > < td class = "code" > < pre > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 拉取镜像< / span > < / span > < br > < span class = "line" > docker pull nacos/nacos-server:1.2.0< / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > 创建容器并运行< / span > < / span > < br > < span class = "line" > < span class = "meta prompt_" > #< / span > < span class = "language-bash" > MODE=standalone 单机版< / span > < / span > < br > < span class = "line" > docker run --env MODE=standalone --name nacos --restart=always -d -p 8848:8848 nacos/nacos-server:1.2.0< / span > < br > < / pre > < / td > < / tr > < / table > < / figure >
< p > 测试访问:http:/ / 虚拟机ip:8848/ nacos < / p >
< p > < img src = "/pictures/image-20230811105925843.png" alt = "image-20230811105925843" > < / p >
2024-06-14 22:00:25 +08:00
< / article > < div class = "tag_share" > < div class = "post-meta__tag-list" > < a class = "post-meta__tags" href = "/tags/%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/" > 环境搭建< / a > < a class = "post-meta__tags" href = "/tags/Linux/" > Linux< / a > < / div > < div class = "post_share" > < div class = "social-share" data-image = "/img/8.png" data-sites = "wechat,weibo,qq" > < / div > < link rel = "stylesheet" href = "/cdn/css/share.min.css" media = "print" onload = "this.media='all'" > < script src = "/cdn/js/social-share.min.js" defer > < / script > < / div > < / div > < div class = "post-reward" > < div class = "reward-button" > < i class = "fas fa-qrcode" > < / i > 打赏< / div > < div class = "reward-main" > < ul class = "reward-all" > < li class = "reward-item" > < a href = "/img/wechat.jpg" target = "_blank" > < img class = "post-qr-code-img" src = "/img/wechat.jpg" alt = "微信" / > < / a > < div class = "post-qr-code-desc" > 微信< / div > < / li > < li class = "reward-item" > < a href = "/img/alipay.jpg" target = "_blank" > < img class = "post-qr-code-img" src = "/img/alipay.jpg" alt = "支付宝" / > < / a > < div class = "post-qr-code-desc" > 支付宝< / div > < / li > < / ul > < / div > < / div > < br / > < div id = "post-comment" > < div class = "comment-head" > < div class = "comment-headline" > < i class = "far fa-comment-alt fa-fw" > < / i > < span > 评论< / span > < / div > < / div > < div class = "comment-wrap" > < div > < div id = "gitalk-container" > < / div > < / div > < / div > < / div > < / div > < div class = "aside-content" id = "aside-content" > < div class = "card-widget card-info" > < div class = "is-center" > < div class = "avatar-img" > < img src = "/img/avatar.jpg" onerror = "this.onerror=null;this.src='/img/loading.gif'" alt = "avatar" / > < / div > < div class = "author-info__name" > Jason< / div > < div class = "author-info__description" > Debug the World! < / div > < / div > < div class = "card-info-data site-data is-center" > < a href = "/archives/" > < div class = "headline" > 文章< / div > < div class = "length-num" > 60< / div > < / a > < a href = "/tags/" > < div class = "headline" > 标签< / div > < div class = "length-num" > 39< / div > < / a > < a href = "/categories/" > < div class = "headline" > 分类< / div > < div class = "length-num" > 10< / div > < / a > < / div > < a id = "card-info-btn" > < i class = "fab fa-microsoft" > < / i > < span > Ctrl + D 收藏< / span > < / a > < div class = "card-info-social-icons is-center" > < a class = "social-icon" href = "https://github.com/JasonsGong" target = "_blank" title = "Github" > < i class = "fab fa-github" > < / i > < / a > < a class = "social-icon" href = "tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=2602183349&website=www.oicqzone.com" target = "_blank" title = "QQ" > < i class = "fab fa-qq" > < / i > < / a > < a class = "social-icon" href = "mailto:2602183349@qq.com" target = "_blank" title = "Email" > < i class = "fas fa-envelope-open-text" > < / i > < / a > < a class = "social-icon" href = "https://github.com/JasonsGong?tab=repositories" target = "_blank" title = "代码仓库" > < i class = "fas fa-database" > < / i > < / a > < / div > < / div > < div class = "card-widget card-announcement" > < div class = "item-headline" > < i class = "fas fa-bullhorn fa-shake" > < / i > < span > 公告< / span > < / div > < div class = "announcement_content" > 本网站是静态网站,更新页面资源请使用Ctrl+F5;若网站内文章对你有帮助,请使用Ctrl+D收藏该网站! < / div > < / div > < div class = "sticky_layout" > < div class = "card-widget" id = "card-toc" > < div class = "item-headline" > < i class = "fas fa-stream" > < / i > < span > 目录< / span > < span class = "toc-percentage" > < / span > < / div > < div class = "toc-content is-expand" > < ol class = "toc" > < li class = "toc-item toc-level-2" > < a class = "toc-link" href = "#%E4%B8%80-Linux%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE" > < span class = "toc-text" > 一.Linux操作系统的安装与配置< / span > < / a > < / li > < li class = "toc-item toc-level-2" > < a class = "toc-link" href = "#%E4%BA%8C-%E9%85%8D%E7%BD%AEJava%E7%8E%AF%E5%A2%83" > < span class = "toc-text" > 二.配置Java环境< / span > < / a > < / li > < li class = "toc-item toc-level-2" > < a class = "toc-link" href = "#%E4%B8%89-%E4%BD%BF%E7%94%A8Docker%E5%AE%89%E8%A3%85%E5%B8%B8%E7%94%A8%E8%BD%AF%E4%BB%B6" > < span class = "toc-text" > 三.使用Docker安装常用软件< / span > < / a > < ol class = "toc-child" > < li class = "toc-item toc-level-3" > < a class = "toc-link" href = "#3-1-Docker%E7%9A%84%E5%AE%89%E8%A3%85" > < span class = "toc-text" > 3.1 Docker的安装< / span > < / a > < / li > < li class = "toc-item toc-level-3" > < a class = "toc-link" href = "#
2024-01-13 16:32:52 +08:00
function initGitalk () {
var gitalk = new Gitalk(Object.assign({
clientID: '00fb27b1e484536359c2',
clientSecret: 'be41a12281c68b6e228d1a27e8d08aeb91541145',
repo: 'BlogComment',
owner: 'JasonsGong',
admin: ['JasonsGong'],
id: '93bf43324e79aa8eacfd42112d1ca2c5',
updateCountCallback: commentCount
},null))
gitalk.render('gitalk-container')
}
if (typeof Gitalk === 'function') initGitalk()
else {
2024-01-13 17:50:17 +08:00
getCSS('/cdn/css/gitalk.min.css')
getScript('/cdn/js/gitalk.min.js').then(initGitalk)
2024-01-13 16:32:52 +08:00
}
}
function commentCount(n){
let isCommentCount = document.querySelector('#post-meta .gitalk-comment-count')
if (isCommentCount) {
isCommentCount.textContent= n
}
}
if ('Gitalk' === 'Gitalk' || !true) {
if (true) btf.loadComment(document.getElementById('gitalk-container'), loadGitalk)
else loadGitalk()
} else {
function loadOtherComment () {
loadGitalk()
}
}< / script > < / div > < script async data-pjax src = "//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" > < / script > < div id = "local-search" > < div class = "search-dialog" > < nav class = "search-nav" > < span class = "search-dialog-title" > 搜索< / span > < span id = "loading-status" > < / span > < button class = "search-close-button" > < i class = "fas fa-times" > < / i > < / button > < / nav > < div class = "is-center" id = "loading-database" > < i class = "fas fa-spinner fa-pulse" > < / i > < span > 数据库加载中< / span > < / div > < div class = "search-wrap" > < div id = "local-search-input" > < div class = "local-search-box" > < input class = "local-search-box--input" placeholder = "搜索文章" type = "text" / > < / div > < / div > < br / > < div class = "no-result" id = "local-search-results" > < / div > < div id = "local-search-stats-wrap" > < / div > < / div > < / div > < div id = "search-mask" > < / div > < script src = "/js/search/local-search.js" > < / script > < / div > < / div > <!-- hexo injector body_end start --> < script data-pjax >
2023-09-22 21:57:28 +08:00
function butterfly_swiper_injector_config(){
2024-01-13 22:42:28 +08:00
var parent_div_git = document.getElementById('recent-posts');
2024-06-14 22:00:25 +08:00
var item_html = '< div class = "recent-post-item" style = "height: auto;width: 100%" > < div class = "blog-slider swiper-container-fade swiper-container-horizontal" id = "swiper_container" > < div class = "blog-slider__wrp swiper-wrapper" style = "transition-duration: 0ms;" > < div class = "blog-slider__item swiper-slide" style = "width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;" > < a class = "blog-slider__img" href = "posts/19306.html" alt = "" > < img width = "48" height = "48" src = "/img/1.png" alt = "" onerror = "this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;" / > < / a > < div class = "blog-slider__content" > < span class = "blog-slider__code" > 2023-04-21< / span > < a class = "blog-slider__title" href = "posts/19306.html" alt = "" > Docker容器化技术< / a > < div class = "blog-slider__text" > Docker< / div > < a class = "blog-slider__button" href = "posts/19306.html" alt = "" > 详情 < / a > < / div > < / div > < div class = "blog-slider__item swiper-slide" style = "width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;" > < a class = "blog-slider__img" href = "posts/47003.html" alt = "" > < img width = "48" height = "48" src = "/img/5.png" alt = "" onerror = "this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;" / > < / a > < div class = "blog-slider__content" > < span class = "blog-slider__code" > 2023-03-10< / span > < a class = "blog-slider__title" href = "posts/47003.html" alt = "" > 常用正则表达式大全< / a > < div class = "blog-slider__text" > 正则表达式< / div > < a class = "blog-slider__button" href = "posts/47003.html" alt = "" > 详情 < / a > < / div > < / div > < div class = "blog-slider__item swiper-slide" style = "width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;" > < a class = "blog-slider__img" href = "posts/20683.html" alt = "" > < img width = "48" height = "48" src = "/img/8.png" alt = "" onerror = "this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;" / > < / a > < div class = "blog-slider__content" > < span class = "blog-slider__code" > 2023-06-05< / span > < a class = "blog-slider__title" href = "posts/20683.html" alt = "" > Linux中开发环境的搭建< / a > < div class = "blog-slider__text" > 环境搭建< / div > < a class = "blog-slider__button" href = "posts/20683.html" alt = "" > 详情 < / a > < / div > < / div > < div class = "blog-slider__item swiper-slide" style = "width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;" > < a class = "blog-slider__img" href = "posts/63333.html" alt = "" > < img width = "48" height = "48" src = "/img/10.png" alt = "" onerror = "this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;" / > < / a > < div class = "blog-slider__content" > < span class = "blog-slider__code" > 2023-06-03< / span > < a class = "blog-slider__title" href = "posts/63333.html" alt = "" > 开发环境的搭建< / a > < div class = "blog-slider__text" > 环境搭建< / div > < a class = "blog-slider__button" href = "posts/63333.html" alt = "" > 详情 < / a > < / div > < / div > < / div > < div class = "blog-slider__pagination swiper-pagination-clickable swiper-pagination-bullets" > < / div > < / div > < / div > ';
2024-01-13 22:42:28 +08:00
if (parent_div_git !== null & & typeof parent_div_git !== 'undefined') {
parent_div_git.insertAdjacentHTML("afterbegin",item_html)
}
2023-09-22 21:57:28 +08:00
}
var elist = 'undefined'.split(',');
var cpage = location.pathname;
2023-10-28 10:47:20 +08:00
var epage = 'all';
2023-09-22 21:57:28 +08:00
var flag = 0;
for (var i=0;i< elist.length ; i + + ) {
if (cpage.includes(elist[i])){
flag++;
}
}
if ((epage ==='all')& & (flag == 0)){
butterfly_swiper_injector_config();
}
else if (epage === cpage){
butterfly_swiper_injector_config();
}
2024-01-13 22:10:58 +08:00
< / script > < script defer src = "https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.js" > < / script > < script defer data-pjax src = "https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper_init.js" > < / script > <!-- hexo injector body_end end --> < / body > < / html >