Docker 容器如何更新 如何遷移應(yīng)用
搭建環(huán)境
服務(wù)器:百度云
系統(tǒng):Debian 10
~域名一枚,并做好解析到服務(wù)器上
安裝好 Docker、Docker-compose
~【非必需本教程采用】安裝好 Nginx Proxy Manager
Docker 項(xiàng)目更新
docker 命令搭建的常用更新方法
以 Halo 博客為栗子 搭建的命令為:
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.2
更新方法:
docker stop halo ? # 先停止容器,這一步所有都一樣,注意你容器的名字
docker rm -f halo ?# 刪除容器,這一步所有都一樣,注意你容器的名字
cp -r ~/.halo ~/.halo.archive ? #備份數(shù)據(jù)(非常非常非常重要)這一步所有都一樣,注意你掛載出來的路徑地址
rm -rf ~/.halo/.leveldb ? ?# 這一步是halo特有的
docker pull halohub/halo:1.5.3 ? # 拉取最新的鏡像,一般的話你知道特定的版本號就直接寫即可,比如這邊的1.5.3,如果不知道版本號,可以直接寫latest,即 docker pull halohub/halo:latest
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.3 ? ?# 重新運(yùn)行容器 注意和搭建時候唯一不同的就是最后面的版本號不同,如果你是latest 那就把1.5.3改成latest
docker image prune # 刪除掉舊的鏡像(可選)
參考自官方文檔:https://docs.halo.run/getting-started/upgrade
3.2 docker-compose 搭建的更新方法
以?qbittorrent?為例:
搭建命令:
cd ~
mkdir -p /root/data/docker_data/qBittorrent #創(chuàng)建qbitorrent數(shù)據(jù)文件夾
cd /root/data/docker_data/qBittorrent
mkdir config downloads #創(chuàng)建配置文件目錄與下載目錄
nano docker-compose.yml #創(chuàng)建并編輯文件
docker-compose.yml
里面的內(nèi)容:
version: "2"
services:
?qbittorrent:
? ?image: linuxserver/qbittorrent:4.4.0
? ?container_name: qbittorrent
? ?environment:
? ? ?- PUID=1000
? ? ?- PGID=1000
? ? ?- TZ=Asia/Shanghai # 你的時區(qū)
? ? ?- UMASK_SET=022
? ? ?- WEBUI_PORT=8081 # 將此處修改成你欲使用的 WEB 管理平臺端口
? ?volumes:
? ? ?- /root/data/docker_data/qBittorrent/config:/config # 絕對路徑請修改為自己的config文件夾
? ? ?- /root/data/docker_data/qBittorrent/downloads:/downloads # 絕對路徑請修改為自己的downloads文件夾
? ?ports:
? ? ?# 要使用的映射下載端口與內(nèi)部下載端口,可保持默認(rèn),安裝完成后在管理頁面仍然可以改成其他端口。
? ? ?- 6881:6881
? ? ?- 6881:6881/udp
? ? ?# 此處WEB UI 目標(biāo)端口與內(nèi)部端口務(wù)必保證相同,見問題1
? ? ?- 8081:8081
? ?restart: unless-stopped
更新方法:
首先進(jìn)入到docker-compose
所在的文件夾下,然后:
docker-compose pull ? ? # 注意到上方docker-compose.yml里面linuxserver/qbittorrent后面有版本號4.4.0,(如果沒有默認(rèn)就是latest),所以更新需要修改版本號為新的版本號(更新到特定版本),或者直接刪去現(xiàn)在的版本號(更新到最新版本)
cp -r qBittorrent qBittorrent.archive ? ?# 同樣你可以備份一下,也可以直接備份配置文檔,因?yàn)橛行r候,downloads里面文件都是小電影,很大,浪費(fèi)空間 = =
docker-compose up -d ? #完成
docker image prune # 刪除掉舊的鏡像(可選)
3.3 Portainer 更新
見【Docker 系列】Docker 更新容器鏡像的三種方法
Docker 項(xiàng)目遷移到新服務(wù)器
核心思想:
容器本身是可以 pull 下來的,沒必要備份,我們只需要把搭建的命令(或者 docker-compose 文件)放到新機(jī)器上運(yùn)行一下,然后把之前容器映射到本地的文件夾放到新的機(jī)器上就行。
4.1 帶面板遷移
見視頻。
4.2 命令行遷移
tar -czvf .halo.tar.gz .halo.archive
scp -P 22 -r .halo.tar.gz root@192.248.190.156:/root ?# scp -P 端口 -r /root/backup/backup.tar 你的用戶名@你的IP:/root/data/docker_data/
tar -zxvf .halo.tar.gz
mv .halo.archive .halo ? #把.halo.archive重命名成.halo
參考:https://www.runoob.com/linux/linux-comm-scp.html
https://www.runoob.com/linux/linux-comm-tar.html
Docker 項(xiàng)目卸載(包括卸載 Docker、docker-compose)
5.1 docker 命令搭建的常用卸載方法
docker ps
docker stop 容器名字
cd ~
docker rm -f 容器名字
rm -rf 映射出來的路徑
5.2 docker-compose 搭建的卸載方法
cd /root/data/docker_data/qBittorrent
docker-compose down
cd ~
rm -rf /root/data/docker_data/qBittorrent # rm -rf 映射出來的路徑
5.3 卸載 docker 本身
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
參考:https://docs.docker.com/engine/install/debian/
5.4 卸載 docker-compose
cd /usr/local/bin/
rm -rf docker-compose
參考資料
https://www.dianjilingqu.com/436152.html
https://docs.docker.com/engine/install/debian/