Docker 容器服務遷移

一帮匾、背景

在本地虛擬機中部署的項目DOCKER 分步部署VUE3_Django_Celery項目 - 簡書 (jianshu.com)
几莽,要遷移到服務器生產(chǎn)環(huán)境中理逊。
目標是棚唆,項目遷移后旱函,訪問項目主頁资厉,可以正常運轉所有功能王污。

二罢吃、方法

網(wǎng)絡上搜索,比較多的遷移方式介紹基本同這片文章:介紹Docker容器遷移到其他服務器的5種方法 | 《Linux就該這么學》 (linuxprobe.com)昭齐。此處尿招,以本地虛擬機中的項目遷移到本地WSL子系統(tǒng)進行模擬。

結合自己的項目,因為涉及到①數(shù)據(jù)卷文件目錄變化泊业,②容器服務端口變化把沼,故不適用直接遷移容器的方式,而采用分別遷移鏡像與數(shù)據(jù)卷吁伺,然后重新運行容器掛載數(shù)據(jù)卷的方式饮睬。

三、步驟

1.遷移數(shù)據(jù)卷

a.打包數(shù)據(jù)卷

Docker 容器中的數(shù)據(jù)卷篮奄,存放在虛擬機文件夾下捆愁。因為我一開始就在一個文件夾下,建立目錄樹窟却,把前端網(wǎng)頁文件昼丑、后端數(shù)據(jù)庫放到其中了,因此直接壓縮這個根目錄就可以了夸赫。

cd /home/haben       #切換到文件夾所在目錄
chmod -R 777 mtms    #給與文件夾及子文件讀寫權限
zip -r mtms.zip mtms #遞歸壓縮整個文件夾

b.數(shù)據(jù)卷遷移到WSL系統(tǒng)

使用xftp復制壓縮文件到wsl系統(tǒng)菩帝。首先把數(shù)據(jù)卷壓縮文件從虛擬機拷貝到WINDOWS,再從WINDOWS拷貝到WSL茬腿。XFTP操作請自行搜索呼奢。


image.png

c.解壓縮數(shù)據(jù)卷

進入wsl,解壓縮文件到想存放項目數(shù)據(jù)卷的文件夾下切平。

unzip archive_name.zip -d /home/haben

2.遷移鏡像

a.保存鏡像

依次保存項目用到的鏡像到文件夾下握础。

cd /directory #控制臺進入文件夾下,后續(xù)保存的鏡像都會存放到此文件夾下
docker save nginx > nginx.tar 
docker save django_celery > django_celery.tar 
docker save truck_info  > truck_info.tar 
docker save redis > redis.tar 
docker save pgrouting/pgrouting > pgrouting.tar 
docker save rabbitmq > rabbitmq.tar 
docker save nats > nats.tar 

b.遷移鏡像文件

使用xftp復制鏡像壓縮文件到wsl系統(tǒng)悴品。同上面數(shù)據(jù)卷的操作方式禀综。

c.加載鏡像

 WSL下已經(jīng)預先安裝好了docker,使用load命令裝載鏡像
cat nginx.tar | docker load 
cat django_celery.tar | docker load 
cat truck_info.tar | docker load 
cat redis.tar  | docker load 
cat pgrouting.tar | docker load 
cat rabbitmq.tar | docker load 
cat nats.tar  | docker load 

3.運行容器

此處運行容器的方式跟之前分步驟部署幾乎一樣苔严,只要注意替換①網(wǎng)絡名稱定枷、②數(shù)據(jù)卷地址即可

- 設置容器網(wǎng)絡

$ docker network create -d bridge my-net

- 運行前端容器,并掛載數(shù)據(jù)卷,

這里端口我設置了8081届氢,避免主機其他服務端口占用

docker run -itd --name frontend \
--restart always --network my-net -p 8081:80 \
-v /home/haben/mtms/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/haben/mtms/nginx/dist:/usr/share/nginx/html \
nginx

- 運行后端服務

docker run -d -p 8000:8000 --name backend --network my-net  --restart unless-stopped django_celery

- 運行數(shù)據(jù)庫欠窒,并掛載數(shù)據(jù)卷

docker run --name postgis --restart always -e POSTGRES_PASSWORD='password' \
-v /home/haben/mtms/postgis:/var/lib/postgresql/data --privileged=true -p 5433:5432 -d \
--network my-net pgrouting/pgrouting

- 運行中間件

####運行redis
docker pull redis  #拉取鏡像 
docker run --name redis -p 6379:6379 \
--network my-net \
--restart unless-stopped \
-v /home/haben/mtms/redis/data:/data \
-v /home/haben/mtms/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:latest \ 
####運行nats
docker run --name nats -run -p 4222:4222 \
-ti --name nats --restart unless-stopped --network my-net nats:latest  #啟動容器
####運行rabbitmq
docker run -itd --restart always --name rabbitmq \
--network my-net -p 5672:5672 -p 15672:15672 rabbitmq:3.13-man

rabbitmq運行容器后,需要進入容器設置賬戶悼沈。

- 運行車端程序

docker run -itd --name truck --network my-net --restart unless-stopped truck_info

4.訪問項目

以上容器全部運行完成贱迟,查看容器列表姐扮。


image.png

本地windows訪問項目網(wǎng)頁
可通過localhost,也可以通過wsl地址訪問網(wǎng)頁
wsl地址訪問:172.30.63.31:8081 ( 在wsl中通過ifconfig絮供,可查看eth0的ip地址)
本地地址訪問:127.0.0.1:8081

局域網(wǎng)內(nèi)機器訪問
使用 WSL 訪問網(wǎng)絡應用程序 | Microsoft Learn

四、備注

在遷移時茶敏,遇到一個問題壤靶,啟動nginx容器后,嘗試訪問網(wǎng)頁一直不通惊搏,docker logs frontend查看日志贮乳,發(fā)現(xiàn)是找不到后端服務忧换。
原因是nginx.conf配置文件中,配置了接口代理向拆,指向了backend的容器亚茬。再接著啟動backend容器后,問題解決浓恳。


image.png
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刹缝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子颈将,更是在濱河造成了極大的恐慌梢夯,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晴圾,死亡現(xiàn)場離奇詭異颂砸,居然都是意外死亡,警方通過查閱死者的電腦和手機死姚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門人乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人知允,你說我怎么就攤上這事撒蟀。” “怎么了温鸽?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵保屯,是天一觀的道長。 經(jīng)常有香客問我涤垫,道長姑尺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任蝠猬,我火速辦了婚禮切蟋,結果婚禮上,老公的妹妹穿的比我還像新娘榆芦。我一直安慰自己柄粹,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布匆绣。 她就那樣靜靜地躺著驻右,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崎淳。 梳的紋絲不亂的頭發(fā)上堪夭,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音,去河邊找鬼森爽。 笑死恨豁,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的爬迟。 我是一名探鬼主播橘蜜,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼付呕!你這毒婦竟也來了扮匠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凡涩,失蹤者是張志新(化名)和其女友劉穎棒搜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體活箕,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡力麸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了育韩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片克蚂。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筋讨,靈堂內(nèi)的尸體忽然破棺而出埃叭,到底是詐尸還是另有隱情,我是刑警寧澤悉罕,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布赤屋,位于F島的核電站,受9級特大地震影響壁袄,放射性物質(zhì)發(fā)生泄漏类早。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一嗜逻、第九天 我趴在偏房一處隱蔽的房頂上張望涩僻。 院中可真熱鬧,春花似錦栈顷、人聲如沸逆日。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽室抽。三九已至,卻和暖如春蛙卤,著一層夾襖步出監(jiān)牢的瞬間狠半,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工颤难, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留神年,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓行嗤,卻偏偏與公主長得像已日,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栅屏,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容