iT邦幫忙

0

更改 Docker 預設路徑

  • 分享至 

  • xImage
  •  

因為最近 build docker image 非常頻繁,導致 OS Disk 常常會爆滿,因此想將 Docker 的預設路徑改到另外掛載的 Data Disk 中,在這邊做一個紀錄。

本文環境

OS 版本

透過 sudo cat /etc/os-release 指令看出,使用的是 CentOS 7

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Docker 版本

透過 sudo docker -v 指令看出使用的是 v19.03.12 這個版本

Docker version 19.03.12, build 48a66213fe

需求

將 docker 的路徑從預設的改到 /data/docker 底下

整體步驟

停止 docker

透過以下指令將 docker 停止,避免在更換的過程中還有服務在運作造成資料的誤差

sudo systemctl stop docker

修改 daemon.json

透過 vim 修改 /etc/docker 路徑底下的 daemon.json,加入 data-root 的 key,value 填上 /data/docker
[備註1] 如果沒有 /etc/docker/daemon.json 這個檔案的話可以自行建立一個
[備註2] 如果 docker 的版本低於 v17.05.0 的話可以使用 graph 這個 key

{
    "data-root": "/data/docker"
}

複製預設路徑的檔案至新的路徑

在這邊我們使用 rsync 來進行複製,rsync 有一個好處就是在複製的時候可以連同資料夾或檔案的擁有者、群組或是權限設定都一併的複製過去,關於 rsync 的詳細說明可以參考這裡

複製檔案

由於 docker 的預設路徑為 /var/lib/docker,因此我們要將這底下的所有資料都複製到 /data/docker 底下,透過以下指令可以完成這項需求

sudo rsync -avh /var/lib/docker/* /data/docker/

檢查檔案

複製完畢之後可以透過 ls 的方式檢查 /data/docker 底下是否已經有相關的檔案,沒有問題的話應該要有以下這幾個目錄

builder  buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes

啟動 docker

完成以上步驟後,透過以下指令將 docker 進行啟動

sudo systemctl start docker

檢查是否正確

可以透過以下指令逐步檢查 docker 環境是否有遺漏

//檢查 docker image
docker images
//檢查 container
docker ps

小結

使用以上步驟就可以將 docker 的預設路徑進行更改拉,如果大家有更好的方法歡迎在底下留言呦!

參考


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言