首页 > 解决方案 > 数字海洋:如何 docker compose build in a volume

问题描述

我已经为数字海洋中的水滴购买了体积,当我这样做时,docker compose build它占用了我当前设置的空间,我无法构建我的图像。

我当前的设置已开启

`/dev/vda1       25227048 25191932     18732 100% /`

完整的 Ubunto 是:

udev             2013884        0   2013884   0% /dev
tmpfs             404632     5672    398960   2% /run
/dev/vda1       25227048 25191932     18732 100% /
tmpfs            2023160        0   2023160   0% /dev/shm
tmpfs               5120        0      5120   0% /run/lock
tmpfs            2023160        0   2023160   0% /sys/fs/cgroup
/dev/vda15        106858     3437    103421   4% /boot/efi
tmpfs             404632        0    404632   0% /run/user/0
/dev/sda       103081248    93980  97728004   1% /mnt/volume_lon1_01

如何构建以使其构建在我的新卷上?

`/dev/sda       103081248    93980  97728004   1% /mnt/volume_lon1_01`

现在失败出错:

 Version:       18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:10:01 2018
 OS/Arch:       linux/amd64
 Experimental:  false
 Orchestrator:  swarm
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

标签: dockerserverdocker-composedigital-ocean

解决方案


如果您只想将新磁盘用于 docker,则需要将其挂载到 docker 基本目录中:/var/lib/docker.

但在这样做之前,您需要:

  • 完全停止 docker 守护进程sudo systemctl docker stop
  • 将当前目录中的所有内容同步到新磁盘:sudo rsync -aqxP /var/lib/docker/ /mnt/volume_lon1_01
  • 删除旧内容:sudo rm -rf /var/lib/docker/*
  • 将新卷安装到正确的位置:sudo mount /dev/sda /var/lib/docker
  • 启动 docker 守护进程sudo systemctl start docker
  • 检查一切是否正常-您可以检查是否仍然列出了您的卷docker volume ls或一些本地图像docker images ls,或者您是否可以启动一个新容器docker run -ti alpine
  • 将新的挂载定义添加到/etc/fstab*

您还可以将 docker 的默认目录更改为使用/mnt/volume_lon1_01.

如果您想要第二个选项,我建议您阅读https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian- linux

*修改fstab,如果你不熟悉,你需要一些信息:分区使用的文件系统是什么,它的路径以及你想挂载它的位置之后,编辑文件/etc/fstab并检查是否已经存在一行使用分区路径(/dev/sda为您)。如果不是,添加一个新行,如果是,只需编辑它以将挂载路径更改为新行。

如何查找已挂载的分区文件系统:mount 这将返回一行par partition,您需要检查分区的类型。

示例:rootfs on / type lxfs (rw,noatime),分区类型为lxfs

如果您需要添加一个新行,它将是这样的:

/dev/sda /var/lib/docker <fs type> defaults 0 0


推荐阅读