簡體   English   中英

如何在 ubuntu 18.04 LTS 上更改 docker 的根目錄? (docker 更改卷的位置)

[英]how to change root dir of docker on ubuntu 18.04 LTS? (docker change location of volumes)

我安裝了 ubuntu 18.04 LTS 並檢查了 docker (17.06.2-ce) 的設置以同時安裝。

我通過啟動 hello-world ( sudo docker run hello-world ) 進行了測試:

[...] Docker 向您問好! 此消息表明您的安裝似乎工作正常。 [...]

我在名為/raid的文件夾上安裝了一個軟件raid,並在其中創建了一個文件夾/docker-data

我嘗試按照網絡上的幾個教程更改我的 docker 的根目錄以將其放在/raid/docker-data/ ……但徒勞無功。

這些解決方案也不起作用

  • /etc/default/docker :我找不到這個
  • 如第二個解決方案:docker 找不到他的文件夾。

Docker 根目錄:/var/snap/docker/common/var-lib-docker

最近幾個月有沒有人設法做到這一點?

(這是我第三次安裝 ubuntu,我剛剛把它弄壞了......)


顯然在 Ubuntu 18.04 LTS 上,docker 17.06.2-它需要與 snap 配合使用,我打算以這種方式進行挖掘。 我稍后會嘗試回復答案...

常見的解決方案是移動數據並創建符號鏈接:

systemctl stop docker
mv /var/lib/docker /raid/docker-data
ln -s /raid/docker-data /var/lib/docker
systemctl start docker

您還可以使用 /etc/docker/daemon.json 中的設置告訴 docker 新位置。 如果你沒有這個文件,你可以創建一個包含以下內容的文件:

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

我會推薦第一個解決方案,因為您會發現許多 3rd 方工具都希望 docker 位於 /var/lib/docker 中。

很抱歉這么晚回復。

在更仔細地研究之后來解決我的問題:

我在 Ubuntu 18.04 上,我只能通過snap install (or remove ) docker添加或刪除 docker 服務。

一個 docker 聚會安裝在/var/snap/

所以我轉置你的解決方案是這樣的:

mv /var/snap/ /raid/snap
ln -s /raid/snap /var/snap

最后我通過snap install docker

我對sudo docker info進行了測試,並且出現了以下錯誤消息:

cannot perform operation: mount --rbind /var/snap /tmp/snap.rootfs_RRAjdq//var/snap: Permission denied

snap.rootfs_*因為每次命令啟動時結尾都不會停止更改)

然而安裝進行得很順利,一些 docker 顯然在/raid/snap

我回來找你給你解決這個問題的解決方案。

cannot perform operation: mount --rbind /var/snap /tmp/snap.rootfs_RRAjdq//var/snap: Permission denied

我知道為什么: https : //bugs.launchpad.net/snapcraft/+bug/1620771

當 /home 是符號鏈接時,快照不起作用。

當 /home 是一個真正的目錄快照工作時,請參見下面的輸出

就我而言:

當 /raid/snap 是符號鏈接時,快照不起作用。

當 /var/snap 是一個真正的目錄快照工作時。

我刪除了碼頭工人。 我不得不重新安裝 snapcraf (snapd),因為我不得不修改它的文件(錯誤的方式)

從那里,我停止了 snapd 服務:

sudo mv /var/snap/ /raid/snap
sudo mount --rbind /raid/snap /var/snap

我啟動了 snapd 服務。

sudo snap install docker

sudo docker info <= 測試

sudo docker run hello-world <= 進行測試

我在 fstab 上固定了我的安裝:

/raid/snap      /var/snap      none      bind

我重新啟動了我的操作系統:它起作用了,至少對我來說是這樣。 我一直在檢查這個文件一致性處理,看看 docker 文件在突襲中是否進展順利......

更改 Docker 根存儲(數據路徑):

運行此命令以查找 docker 數據路徑:

$ sudo docker info | grep -i root

默認路徑:

root@user-testing-HP-ProBook-4540s:/etc/docker# docker info | grep -i root
 Root Dir: /var/lib/docker/aufs
WARNING: No swap limit support
Docker Root Dir: /var/lib/docker

首先,停止泊塢窗:

sudo service docker stop

將相應的數據路徑復制到新路徑:

sudo rsync -aqxP /var/lib/docker /data/docker-data/

在 (/etc/docker/daemon.json) 文件中添加以下內容:(如果該文件不存在,請使用 vim 或您的收藏編輯器(sudo vim /etc/docker/deamon.json)創建文件)

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

符合 cat 命令:

cat /etc/docker/deamon.json

輸出將是這樣的:

root@user-testing-HP-ProBook-4540s:/home/user/Downloads# cat /etc/docker/daemon.json 
{
  "data-root": "/data/docker-data/docker"
}

root@user-testing-HP-ProBook-4540s:/home/user/Downloads# 

啟動泊塢窗:

sudo service docker start

現在檢查根(數據路徑)路徑:

$ sudo docker info | grep -i root

輸出將是這樣的:

root@user-testing-HP-ProBook-4540s:/home/user/Downloads# sudo docker info | grep -i root
 

Root Dir: /data/docker-data/docker/aufs
WARNING: No swap limit support
Docker Root Dir: /data/docker-data/docker

root@user-testing-HP-ProBook-4540s:/home/user/Downloads# 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM