docker - 数字海洋:如何 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?
解决方案
如果您只想将新磁盘用于 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
推荐阅读
- c# - 如何在 C# 中正确实例化动态派生对象及其成员
- html - HTML 找不到图片
- c# - 如何在现有 JArray 中添加 JObject?
- android-studio - xml布局不会显示在模拟器上
- google-signin - 构建具有 Google Sign 并支持 Mac 的 iOS 应用
- python - QTreeView 不显示项目
- python - 在 MySQL 表中恢复预期的 UTF-8 欧洲字符
- python - Python2.7:paramiko 不会 SFTP 到端口 115。pysftp 成功
- javascript - G-script : 从存储在 G-Sheet 中的变量中列出和过滤 G-Drive 文件
- scala - Windows-1252 和 ISO-8859-1 之间的桥梁差异