最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Docker遷移服務(wù)到離線服務(wù)器的過程

 更新時間:2023年06月10日 08:45:46   作者:程序設(shè)計實驗室  
最近遇到的這個場景,需要把之前開發(fā)的一套系統(tǒng)遷移到一個離線的服務(wù)器上,這個服務(wù)器有點麻煩,接入VPN后通過堡壘機才能訪問,速度也很慢,遇到不少坑,本文記錄一下遷移過程,需要的朋友可以參考下

前言

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

基本信息

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

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

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

遷移步驟:

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

離線安裝docker

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

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

需要下載以下安裝包(版本號本文撰寫時的最新版,請讀者自行下載當下的最新版本)

  • 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 # 以及其他...

就是把全部文件都放在同一個 install 命令后面,因為這些包是有相互依賴要求的,如果一個個裝的話可能會因為順序問題報錯。

安裝之后啟動一下 docker

sudo systemctl enable docker
sudo systemctl start docker

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

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

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

導(dǎo)出鏡像

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

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

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

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

操作命令

docker save <container_id> -o image.tar

也可以重定向

docker save <container_id> > image.tar

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

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

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

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

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

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

MySQL docker 的 volumes 配置

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

因為VPN帶寬很低,這次使用 tar + bzip2 來打包壓縮

tar -cjvf ./data data.tar.bz2

命令參數(shù)說明:

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

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

解壓命令我也貼一下

tar -xjvf data.tar.bz2

這個命令會在當前目錄生成 data 目錄。

命令參數(shù)說明:

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

導(dǎo)入鏡像

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

docker load &lt; image.tar

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

啟動容器

把原本的幾個 docker-compose 配置上傳

之前為了方便更新,Django項目是上傳代碼之后在服務(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ù)器上,沒有網(wǎng)絡(luò)肯定是沒法 build 了

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

搞定后順利啟動~

配置周邊組件

只提供接口的話,也沒啥啦,再安裝個 nginx 就好

然而眾所周知 yum 的默認源連 nginx 都沒有,要安裝 nginx 的話還得添加 epel-release 源

sudo yum install epel-release

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

sudo yum update
sudo yum install nginx

搞定~

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

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

所以只能用 curl 之類的工具來測試一下。

不過我這次另辟蹊徑,用命令行瀏覽器來試試能不能打開項目的網(wǎng)頁。

分別試了這倆:

  • w3m
  • lynx

成功打開了網(wǎng)頁,這倆瀏覽器的效果都差不多。

參考資料

到此這篇關(guān)于使用Docker遷移服務(wù)到離線服務(wù)器的文章就介紹到這了,更多相關(guān)Docker遷移服務(wù)到離線服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker 容器日志查看和清理的實現(xiàn)步驟

    Docker 容器日志查看和清理的實現(xiàn)步驟

    在處理Docker容器的過程中,經(jīng)常需要查看容器的日志輸出來排查問題或者進行系統(tǒng)監(jiān)控,本文主要介紹了Docker容器日志查看和清理的實現(xiàn)步驟,感興趣的可以了解一下
    2023-11-11
  • PVE下擴展openwrt?for?x86分區(qū)大小方式

    PVE下擴展openwrt?for?x86分區(qū)大小方式

    本文介紹了在PVE環(huán)境下如何對OpenWRT虛擬機的分區(qū)進行擴容,包括磁盤調(diào)整、軟件安裝、分區(qū)配置和系統(tǒng)引導(dǎo)等步驟,操作前需做好備份,以防數(shù)據(jù)丟失
    2024-10-10
  • 詳解如何修改docker pull鏡像源

    詳解如何修改docker pull鏡像源

    Docker Hub Mirror 為全球最大的Docker Registry(Docker Hub)提供在中國的鏡像代理服務(wù)。Docker Hub Mirror會為中國的用戶在國內(nèi)的服務(wù)器上緩存諸多鏡像。
    2017-03-03
  • docker安裝redis設(shè)置密碼并連接的操作

    docker安裝redis設(shè)置密碼并連接的操作

    這篇文章主要介紹了docker安裝redis設(shè)置密碼并連接的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Elasticsearch/Kibana密碼設(shè)置方法

    Elasticsearch/Kibana密碼設(shè)置方法

    這篇文章主要介紹了Elasticsearch/Kibana密碼設(shè)置,本文分步驟給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • docker-compose如何單獨更新某個服務(wù)

    docker-compose如何單獨更新某個服務(wù)

    這篇文章主要介紹了docker-compose如何單獨更新某個服務(wù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Dockerfile構(gòu)建Redis鏡像的方法實現(xiàn)(yum方式)

    Dockerfile構(gòu)建Redis鏡像的方法實現(xiàn)(yum方式)

    本文主要介紹了Dockerfile構(gòu)建Redis鏡像的方法實現(xiàn)(yum方式),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2023-08-08
  • Windows系統(tǒng)下裝Docker至D盤/其他盤最新方法(最準確,直接裝)

    Windows系統(tǒng)下裝Docker至D盤/其他盤最新方法(最準確,直接裝)

    這篇文章主要介紹了Windows系統(tǒng)下裝Docker至D盤/其他盤的相關(guān)資料,為了避免C盤空間不足的問題,通過修改安裝路徑,可以將Docker的數(shù)據(jù)存儲在D盤的特定文件夾中,從而有效地管理磁盤空間,需要的朋友可以參考下
    2025-04-04
  • Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細過程

    Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細過程

    這篇文章主要介紹了Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細過程,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Docker搭建Nginx圖片服務(wù)器的方法

    Docker搭建Nginx圖片服務(wù)器的方法

    這篇文章主要介紹了Docker搭建Nginx圖片服務(wù)器的方法,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論

长武县| 邹城市| 玉环县| 越西县| 二连浩特市| 承德市| 方正县| 桂平市| 潼关县| 花莲市| 莫力| 亳州市| 鄂托克前旗| 青神县| 襄垣县| 左权县| 武汉市| 宁国市| 金乡县| 潮安县| 仲巴县| 辛集市| 普兰店市| 南城县| 资中县| 财经| 江永县| 凤台县| 新野县| 苍南县| 繁峙县| 石林| 沁源县| 登封市| 苏州市| 邢台县| 遵义县| 凤山市| 遵义市| 衡阳县| 抚顺市|