国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

項(xiàng)目小結(jié):使用Docker遷移服務(wù)到離線服務(wù)器

這篇具有很好參考價(jià)值的文章主要介紹了項(xiàng)目小結(jié):使用Docker遷移服務(wù)到離線服務(wù)器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

最近遇到的這個(gè)場(chǎng)景,需要把之前開發(fā)的一套系統(tǒng)遷移到一個(gè)離線的服務(wù)器上,這個(gè)服務(wù)器有點(diǎn)麻煩,接入VPN后通過(guò)堡壘機(jī)才能訪問(wèn),速度也很慢,遇到不少坑,本文記錄一下遷移過(guò)程。

基本信息

原本這套系統(tǒng)也挺簡(jiǎn)單的,Django 寫的后端接口,搭配 Vue+Echarts 大屏,數(shù)據(jù)庫(kù)用 Mysql 和 Redis 作為緩存,這些在原服務(wù)器上都是用 docker 部署的。

這臺(tái)離線的服務(wù)器是 Centos7.9 系統(tǒng)的,雖然不能訪問(wèn)外網(wǎng),但還好有個(gè)本地的 yum 倉(cāng)庫(kù),可惜 yum 官方源少得可憐,只能安裝很有限的幾個(gè)軟件。

現(xiàn)在除了前端不需要遷移之外,其他的服務(wù)都需要遷移到這個(gè)離線的服務(wù)器上。

遷移步驟:

  • 在離線服務(wù)器上安裝 docker
  • 在原服務(wù)器上導(dǎo)出容器鏡像
  • 在離線服務(wù)器上傳并導(dǎo)入鏡像
  • 在離線服務(wù)器上傳各種docker配置并啟動(dòng)容器
  • 配置周邊組件,如 nginx

離線安裝docker

前面說(shuō)到這個(gè)服務(wù)器是有 yum 本地鏡像的,但里面并沒(méi)有 docker,所以需要自行下載 docker 的 RPM 安裝包。

在這個(gè)地址: https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

需要下載以下安裝包(版本號(hào)本文撰寫時(shí)的最新版,請(qǐng)讀者自行下載當(dāng)下的最新版本)

  • containerd.io-1.6.21-3.1.el7.x86_64
  • docker-buildx-plugin-0.10.5-1.el7.x86_64
  • docker-ce-24.0.2-1.el7.x86_64
  • docker-ce-cli-24.0.2-1.el7.x86_64
  • docker-ce-rootless-extras-24.0.2-1.el7.x86_64
  • docker-compose-plugin-2.18.1-1.el7.x86_64

然后把這些安裝包都上傳到服務(wù)器

執(zhí)行命令安裝

sudo yum install containerd.io-1.6.21-3.1.el7.x86_64.rpm docker-ce-24.0.2-1.el7.x86_64.rpm # 以及其他...

就是把全部文件都放在同一個(gè) install 命令后面,因?yàn)檫@些包是有相互依賴要求的,如果一個(gè)個(gè)裝的話可能會(huì)因?yàn)轫樞騿?wèn)題報(bào)錯(cuò)。

安裝之后啟動(dòng)一下 docker

sudo systemctl enable docker
sudo systemctl start docker

添加用戶組啥的也屬于安裝 docker 后的常規(guī)操作了

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

之后就可以不使用 root 用戶來(lái)執(zhí)行 docker 命令了

導(dǎo)出鏡像

導(dǎo)出鏡像有兩種方式

  • docker export - 對(duì)應(yīng) docker import 導(dǎo)入鏡像
  • docker save - 對(duì)應(yīng) docker load 導(dǎo)入鏡像

PS:這倆的導(dǎo)出導(dǎo)入命令的匹配的,不能混用

前者主要用于制作基礎(chǔ)鏡像,導(dǎo)出后是沒(méi)有歷史記錄和元數(shù)據(jù)的,也沒(méi)有 entrypoint 所以無(wú)法直接運(yùn)行,這次遷移服務(wù)使用 save 方式。

操作命令

docker save <container_id> -o image.tar

也可以重定向

docker save <container_id> > image.tar

補(bǔ)充一下這倆方式的具體區(qū)別

  • 文件大小不同,export 導(dǎo)出的鏡像文件體積小于 save 保存的鏡像,因?yàn)?save 會(huì)把所有 layer 都導(dǎo)出
  • save 可以把多個(gè)鏡像打包到一個(gè)文件,export 不可以
  • export 導(dǎo)出(import 導(dǎo)入)是根據(jù)容器拿到的鏡像,再導(dǎo)入時(shí)會(huì)丟失鏡像所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時(shí)的快照狀態(tài)),所以無(wú)法進(jìn)行回滾操作
  • save 保存(load 加載)的鏡像,沒(méi)有丟失鏡像的歷史,可以回滾到之前的層(layer)

應(yīng)用場(chǎng)景區(qū)別

  • docker export 的應(yīng)用場(chǎng)景:主要用來(lái)制作基礎(chǔ)鏡像,比如我們從一個(gè) ubuntu 鏡像啟動(dòng)一個(gè)容器,然后安裝一些軟件和進(jìn)行一些設(shè)置后,使用 docker export 保存為一個(gè)基礎(chǔ)鏡像。然后,把這個(gè)鏡像分發(fā)給其他人使用,比如作為基礎(chǔ)的開發(fā)環(huán)境。
  • docker save 的應(yīng)用場(chǎng)景:如果我們的應(yīng)用是使用 docker-compose.yml 編排的多個(gè)鏡像組合,但我們要部署的客戶服務(wù)器并不能連外網(wǎng)。這時(shí)就可以使用 docker save 將用到的鏡像打個(gè)包,然后拷貝到客戶服務(wù)器上使用 docker load 載入。

打包數(shù)據(jù)

在舊的服務(wù)器上,使用了 docker 來(lái)部署 MySQL 服務(wù),并且將 data 映射出來(lái),需要把 data 也一并遷移到新的服務(wù)器上。

MySQL docker 的 volumes 配置

volumes:
	- ./data:/var/lib/mysql

因?yàn)閂PN帶寬很低,這次使用 tar + bzip2 來(lái)打包壓縮

tar -cjvf ./data data.tar.bz2

命令參數(shù)說(shuō)明:

  • -c: 建立一個(gè)壓縮檔案的參數(shù)指令 (create)
  • -j: 使用 bzip2 壓縮
  • -v: 壓縮的過(guò)程中顯示詳情 (verbose)
  • -f: 指定文件名,這個(gè)參數(shù)后面就不能再帶其他參數(shù)了

然后將這個(gè) data.tar.bz2 上傳到新的服務(wù)器。

解壓命令我也貼一下

tar -xjvf data.tar.bz2

這個(gè)命令會(huì)在當(dāng)前目錄生成 data 目錄。

命令參數(shù)說(shuō)明:

  • -x: 表示解壓 (extract)
  • 其他的參數(shù)上面有了

導(dǎo)入鏡像

把前面導(dǎo)出的 docker 鏡像上傳后,執(zhí)行導(dǎo)入命令

docker load < image.tar

之后執(zhí)行 docker images 看看是否導(dǎo)入成功

啟動(dòng)容器

把原本的幾個(gè) docker-compose 配置上傳

之前為了方便更新,Django項(xiàng)目是上傳代碼之后在服務(wù)器直接 build,像這樣

version: "3.6"
services:
  web:
    restart: always
    build: .
    environment:
      - ENVIRONMENT=docker
      - URL_PREFIX=demo/api
      - DEBUG=false
      - DEFAULT_DATABASE=mysql
    command: uwsgi uwsgi.ini
    volumes:
      - .:/code

但在離線服務(wù)器上,沒(méi)有網(wǎng)絡(luò)肯定是沒(méi)法 build 了

所以要把 build . 改成 image: 鏡像名稱

搞定后順利啟動(dòng)~

配置周邊組件

只提供接口的話,也沒(méi)啥啦,再安裝個(gè) nginx 就好

然而眾所周知 yum 的默認(rèn)源連 nginx 都沒(méi)有,要安裝 nginx 的話還得添加 epel-release 源

sudo yum install epel-release

萬(wàn)幸,離線服務(wù)器的本地源有這個(gè)東西

sudo yum update
sudo yum install nginx

搞定~

然后還是老套路,用 systemctl 啟動(dòng) nginx,不重復(fù)了。

這個(gè)服務(wù)器很折騰的,既然搞定了,得測(cè)試一下,但是接口都不開放,ssh鏈接也是通過(guò)多層跳轉(zhuǎn)的,好像沒(méi)法開啟 ssh-tunnel 轉(zhuǎn)發(fā)在本地測(cè)試。

所以只能用 curl 之類的工具來(lái)測(cè)試一下。

不過(guò)我這次另辟蹊徑,用命令行瀏覽器來(lái)試試能不能打開項(xiàng)目的網(wǎng)頁(yè)。

分別試了這倆:

  • w3m
  • lynx

成功打開了網(wǎng)頁(yè),這倆瀏覽器的效果都差不多。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-477088.html

參考資料

  • https://www.hangge.com/blog/cache/detail_2411.html
  • https://www.cnblogs.com/52linux/archive/2012/03/04/2379738.html
  • https://docs.docker.com/engine/install/centos/#install-from-a-package

到了這里,關(guān)于項(xiàng)目小結(jié):使用Docker遷移服務(wù)到離線服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker鏡像之不同服務(wù)器間遷移大法

    Docker鏡像之不同服務(wù)器間遷移大法

    有個(gè)需求:需要將一臺(tái)服務(wù)器A上的docker鏡像遷移到另一臺(tái)服務(wù)器B上,并可以在服務(wù)器B上,通過(guò)命令 docker images 可以查看到對(duì)應(yīng)的鏡像(這個(gè)鏡像一般是你自己打包的鏡像,不是https://hub.docker.com上的,否則直接下載即可也不用這么麻煩了,當(dāng)然你沒(méi)有網(wǎng),或者包很大,網(wǎng)很差

    2023年04月09日
    瀏覽(22)
  • 銀河麒麟V10服務(wù)器安裝Docker 之離線安裝

    銀河麒麟V10服務(wù)器安裝Docker 之離線安裝

    ?如果你的服務(wù)器沒(méi)有網(wǎng)絡(luò) 我們看第二種方式 離線安裝 方案二??離線安裝Docker 1.? 查看系統(tǒng)版本,確定自己的服務(wù)器版本? 2.? 查看操作系統(tǒng)? 注意我這里是X86_64? 有的是aarch64 請(qǐng)記住自己的操作系統(tǒng)我們下面還使用 3.? 內(nèi)核版本? 本服務(wù)器是4.19 4.? iptables 版本? 5. 選擇并

    2024年01月19日
    瀏覽(34)
  • 如何從一個(gè)git服務(wù)器倉(cāng)庫(kù)將項(xiàng)目遷移到另一個(gè)git服務(wù)器倉(cāng)庫(kù)

    如何從一個(gè)git服務(wù)器倉(cāng)庫(kù)將項(xiàng)目遷移到另一個(gè)git服務(wù)器倉(cāng)庫(kù)

    最近服務(wù)器遷移涉及到代碼也需要一塊遷移,梳理了一些git服務(wù)遷移指令,希望大家共享??(從服務(wù)器A遷移到服務(wù)器B) 1. 首先將服務(wù)器A上的代碼進(jìn)行備份 1.1 git備份指令【從A服務(wù)器(https://gitlab.xxxx.cn)上clone代碼到本地】 ???? git clone --bare https://gitlab.xxxx.cn/front/ifix

    2024年02月11日
    瀏覽(23)
  • 云服務(wù)器使用jenkins+docker自動(dòng)化部署SpringBoot項(xiàng)目

    云服務(wù)器使用jenkins+docker自動(dòng)化部署SpringBoot項(xiàng)目

    docker?安裝jenkins,就這一步都惡心死了 //拉取鏡像,踩了很多坑,用其它版本的鏡像插件一直安裝失敗,最后用的是lts版本(基礎(chǔ)版) 用其它版本要么是連不上插件的下載地址,要么是插件下載不成功 ?docker pull jenkins/jenkins:lts ?部署 docker run --user root -d -p 10240:8080 -p 10241:50

    2024年02月01日
    瀏覽(31)
  • 如何使用Docker將.Net6項(xiàng)目部署到Linux服務(wù)器(一)

    如何使用Docker將.Net6項(xiàng)目部署到Linux服務(wù)器(一)

    目錄 一 配置服務(wù)器環(huán)境 1.1 配置yum? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1.1.1 更新yum包 1.1.2 yum命令 1.2 配置docker? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    2024年02月04日
    瀏覽(21)
  • 手動(dòng)將Java SpringBoot項(xiàng)目部署到云服務(wù)器上(使用docker)

    手動(dòng)將Java SpringBoot項(xiàng)目部署到云服務(wù)器上(使用docker)

    本文記錄一下我作為一個(gè)小白如何通過(guò)docker手動(dòng)將java springboot項(xiàng)目部署到云服務(wù)器上(以騰訊云的輕量應(yīng)用服務(wù)器為例)。 但是我個(gè)人還是推薦安裝一個(gè)寶塔面板部署 ,真的全程自動(dòng)化,非常方便,網(wǎng)上有很多相關(guān)的教程可以搜搜看。所以我寫這個(gè)教程其實(shí)只想記錄一下我

    2024年04月25日
    瀏覽(22)
  • 華為云云耀云服務(wù)器L實(shí)例評(píng)測(cè)|使用Linux系統(tǒng)與Docker部署.net/c#項(xiàng)目

    華為云云耀云服務(wù)器L實(shí)例評(píng)測(cè)|使用Linux系統(tǒng)與Docker部署.net/c#項(xiàng)目

    目錄 前言 如何在CentOS運(yùn)行項(xiàng)目 登錄CentOS 使用Rider打包 使用Visual Studio打包 項(xiàng)目運(yùn)行 后臺(tái)運(yùn)行 開放端口? 如何在Docker中運(yùn)行項(xiàng)目 項(xiàng)目運(yùn)行 本章詳細(xì)介紹,.net Core項(xiàng)目從打包到部署上華為云云耀云服務(wù)器L實(shí)例的過(guò)程與一些細(xì)節(jié)問(wèn)題。在這里我們分別以系統(tǒng)鏡像的CentOS和應(yīng)用

    2024年02月09日
    瀏覽(49)
  • 使用docker完成minio服務(wù)部署擴(kuò)容備份遷移生產(chǎn)實(shí)踐文檔

    使用docker完成minio服務(wù)部署擴(kuò)容備份遷移生產(chǎn)實(shí)踐文檔

    當(dāng)服務(wù)器存儲(chǔ)空間不足的時(shí)候,需要進(jìn)行擴(kuò)容,擴(kuò)容過(guò)程中需要短暫停機(jī)時(shí)間,預(yù)計(jì)在一小時(shí)內(nèi)能夠完成和恢復(fù) 統(tǒng)一注意事項(xiàng) 強(qiáng)烈建議為部署中的所有節(jié)點(diǎn)選擇基本相似的硬件配置。確保硬件(CPU、內(nèi)存、主板、存儲(chǔ)適配器)和軟件(操作系統(tǒng)、內(nèi)核設(shè)置、系統(tǒng)服務(wù))在所

    2024年02月03日
    瀏覽(25)
  • Docker 部署本地爬蟲項(xiàng)目到服務(wù)器

    Docker 部署本地爬蟲項(xiàng)目到服務(wù)器

    筆記:一直想寫一篇博客的,那就趁著周末閑暇時(shí)光記錄一下。 目錄 一、前提準(zhǔn)備 二、Docker部署爬蟲示例 整體梳理 1、打包構(gòu)建本地項(xiàng)目鏡像 2、在 hub 網(wǎng)站上 創(chuàng)建一個(gè)倉(cāng)庫(kù)。 3、將本地鏡像與hub上的倉(cāng)庫(kù)打上標(biāo)簽 4、確保已登錄 Dockerhub 賬號(hào) 5、推送鏡像到 Dockerhub 倉(cāng)庫(kù)中

    2024年02月03日
    瀏覽(24)
  • 解決升級(jí)IDEA后,Jrebel激活失敗,更換激活地址時(shí)提示必須切換到離線模式,但點(diǎn)擊work offline報(bào)錯(cuò)IllegalStateException

    解決升級(jí)IDEA后,Jrebel激活失敗,更換激活地址時(shí)提示必須切換到離線模式,但點(diǎn)擊work offline報(bào)錯(cuò)IllegalStateException

    今天升級(jí)IDEA到2022版本,升級(jí)完發(fā)現(xiàn)Jrebel激活失效了,提示錯(cuò)誤: Failed to obtain seat. LS client not configured. http://jrebel.cicoding.cn/44AB3E1A-D547-9AFB-13A1-3FF4C7EF0740 想重新激活時(shí)提示錯(cuò)誤: Cannot reactivate, offline seat in use. Click Work online in JRebel configuration to return offline seat. ?遂到配置頁(yè)面,

    2024年02月15日
    瀏覽(295)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包