重启后持久化Docker数据根

时间:2020-07-19 04:06:22

标签: docker

在运行中的Ubuntu系统中,我可以通过使用daemon.jsonservice成功地将Docker的默认数据位置从mouseup更改为from tkinter import * import time root = Tk() canvas = Canvas(root) canvas.pack() everysecond = [(99), (27), (107), (29), (115), (29), (122), (33), (129), (35), (135), (38), (142), (43), (147), (48), (153), (52), (157), (57), (161), (64), (165), (72), (168), (79), (169), (85), (171), (92), (169), (99), (171), (108), (169), (115), (168), (123), (165), (130), (160), (134), (158), (142), (153), (147), (148), (154), (142), (158), (136), (160), (129), (166), (122), (168), (114), (170), (107), (170), (100), (169), (92), (169), (85), (170), (79), (168), (72), (166), (67), (160), (58), (158), (52), (153), (48), (148), (43), (142), (38), (134), (33), (128), (34), (121), (30), (114), (31), (107), (29), (102), (30), (91), (31), (86), (32), (79), (35), (70), (36), (70), (44), (58), (47), (53), (53), (47), (58), (41), (63), (37), (71), (34), (78), (32), (85), (30), (92), (29)] def second(): j = 1 k = 0 for i in range(0, 60): canvas.create_line((everysecond[k], everysecond[j], 100, 100), width=2, fill='red') j = j + 2 k = k + 2 canvas.after(1000, second) root.mainloop() 。但是,只有在引导系统后停止并启动服务后,这种情况才会改变。在常规启动中,服务从快照位置开始。

停止Docker

/var/snap/docker/common/var-lib/docker

编辑/etc/docker/daemon.json

/dockerdata

或者,编辑/lib/systemd/system/docker.service(不是全部!)

sudo systemctl stop docker

然后运行

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

这将起作用,直到您重新引导系统。重新启动时,Docker将运行原始的Root Dir。如上所述重新启动Docker,然后根据所需设置更改Root Dir。 ... ExecStart=/usr/bin/dockerd --data-root /dockerdata -H fd:// --containerd=/run/containerd/containerd.sock ... sudo systemctl daemon-reload sudo systemctl start docker 的输出如下。

docker version

2 个答案:

答案 0 :(得分:0)

TL; DR:在安装Docker之前,请在基准Ubuntu Server 20.04 LTS上运行sudo snap remove docker && sudo apt remove docker

Ubuntu现在在两个地方安装了Docker。有snap和apt版本。重新启动守护程序时,它将使用apt版本。按照Docker文档中的安装说明进行操作,仅删除了apt版本,并将其重定向到Docker存储库。运行sudo snap remove docker并重新启动后,该守护程序现在从正确的Root Dir开始。

为了证明安装正确,我删除了所有容器并重建了它们。他们正确地从/dockerdata提取了数据,并完全像以前的容器一样工作。此外,它们现在出现在以前没有的docker ps中。

感谢Yi Zhao的提示。

答案 1 :(得分:0)

对于2020年11月->如果您使用的是Windows 10,请安装wsl2并为Windows安装docker。

要容易得多。

Docker作为wsl2的单独容器运行,因此已经预先配置。您只需要将ext.hdd重定位到非C驱动器。

如果在linux上,那么是的,所有这些配置。

下载发行版 https://docs.microsoft.com/en-us/windows/wsl/install-manual

安装在其他驱动器中 https://kontext.tech/column/tools/308/how-to-install-windows-subsystem-for-linux-on-a-non-c-drive

将docker安装在另一个驱动器中 How can I change the location of docker images when using WSL2 with Windows 10 Home? https://serverfault.com/questions/975980/how-to-move-docker-images-to-other-drive-in-windows