docker默认安装路径的调整

docker 的镜像与容器都存储在 /var/lib/docker 下面,那么基于不同的系统又有不同的存储方式,在 ubuntu 下面存储方式为 AUFS;在 Centos 下面存储方式又是 device mapper。


一:/var文件系统

/var文件系统

/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。原来/var目录中有些内容是在/usr中的,但为了保持/usr目录的相对稳定,就把那些需要经常改变的目录放到/var中了。每个系统是特定的,即不通过网络与其他计算机共享。下面列出一些重要的目录(一些不太重要的目录省略了)。

1. /var/catman        包括了格式化过的帮助(man)页。帮助页的源文件一般存在/usr/man/man中;有些man页可能有预格式化的版本,存在/usr/man/cat中。而其他的man页在第一次看时都需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。(/var/catman 经常被清除,就像清除临时目录一样。)

2. /var/lib        存放系统正常运行时要改变的文件。

3. /var/local       存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。

4. /var/lock        锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以用来支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件时,就不会再使用这个设备或文件。

5. /var/log        各种程序的日志(log)文件,尤其是login (/var/log/wtmp log纪录所有到系统的登录和注销) 和syslog (/var/log/messages 纪录存储所有核心和系统程序信息)。/var/log 里的文件经常不确定地增长,应该定期清除。

6. /var/run       保存在下一次系统引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。

7. /var/spool      放置“假脱机(spool)”程序的目录,如mail、news、打印队列和其他队列工作的目录。每个不同的spool在/var/spool下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail 中。

8. /var/tmp      比/tmp 允许更大的或需要存在较长时间的临时文件。注意系统管理员可能不允许/var/tmp 有很旧的文件。

二:镜像查找

一、在image文件夹中寻找

1.找到镜像库的文件

首先看repositories.json中的数据

root@ubuntu:/var/lib/docker#cat /var/lib/docker/image/aufs/repositories.json | python -mjson.tool

{

"Repositories": {

"ubuntu": {

"ubuntu:14.04":"sha256:4a2820e686c449bc943eab8492df4b4eb7f7e8fabda5258d7bc551fec5790436",

"ubuntu@sha256:5faf6cb681da2be979a177b60d8c18497f962e3d82268c49db6c74008d0c294d":"sha256:4a2820e686c449bc943eab8492df4b4eb7f7e8fabda5258d7bc551fec5790436"

}

}

}

看看,是不是正好和docker images的内容一致呢

root@ubuntu:/var/lib/docker#docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

ubuntu              14.04              4a2820e686c4        3 weeks ago         188 MB

2.找到镜像描述文件

/var/lib/docker/image/aufs/imagedb/content/sha256/4a2820e686c449bc943eab8492df4b4eb7f7e8fabda5258d7bc551fec5790436

是一个json文件我们只截取了部分:

"rootfs":{

"type": "layers",

"diff_ids": [

"sha256:9669d6b7338336d92ca8e8e5bb90a4a35a934d1c94017322bef35a838615b4ea",

"sha256:f5cfc06b640d49f4e5b0778531394ed4819d8824c46cbc21481f5531db35d970",

"sha256:768dcfe5d05fd2355facaacaf64a45e84ac4c6b895f335ee02f322a35e912d80",

"sha256:d0757a6730d0f8242d131bdb86df046fbd5eb6e3a04328aa10e8881166101a94",

"sha256:d649a240e4537a905c43c0f9fd7bfa3f3cbe693b963e838eb6e84065b57aae3d"

]

}

3.找到镜像文件的layerdb

root@ubuntu:/var/lib/docker#ls /var/lib/docker/image/aufs/layerdb/sha256

76f1e34d1d2f369222db0aababcfe88a86e7773289ee479aa8a37db2dbc1ae78

7bb5a611d10e491eda648224aeb1466d7e7c99b4dc73c30acf01f303159e7405

9669d6b7338336d92ca8e8e5bb90a4a35a934d1c94017322bef35a838615b4ea

c872fbb3ed98d37a6abeebcfa16316bde7adafafabb8c7ff66a1ba53aa29f0bc

ddc772e5acb244ff1a1ddc32c6fbe5687b68c26090ce85e1855022ac6afcefbc

查看文件夹中文件

root@ubuntu:/var/lib/docker#ls /var/lib/docker/image/aufs/layerdb/sha256/9669d6b7338336d92ca8e8e5bb90a4a35a934d1c94017322bef35a838615b4ea/

cache-id  diff size  tar-split.json.gz

查看cache-id中内容:

b1c8bba6bd247accbc8082a4c46aa129e2b6489bd9bffe08387e50b43a08e1cd

二、在aufs文件夹中寻找

cache-id中数据对应aufs/diff文件夹下一个文件

root@ubuntu:/var/lib/docker#ls /var/lib/docker/aufs/diff

045a5f72741ab97228e00f1c8bd7d67b682e12c30def9efec769188e1deb9a56

8444bf1d9f50bf52f649d6e27d94a1fad34e7022e1ae27396b02cafaeb4d37bc

b1c8bba6bd247accbc8082a4c46aa129e2b6489bd9bffe08387e50b43a08e1cd

caba5c4f6a8438d54f4045d06afe9d06ad6c44d7db5bf355d36a18c0fd29d5d3

d04b500544d2efcb8e7e5feb8d37c405360fc9807f272c93eb3fd8cd735a13c5

我们看一下b1c8bba6bd247accbc8082a4c46aa129e2b6489bd9bffe08387e50b43a08e1cd中内容

root@ubuntu:/var/lib/docker#ls/var/lib/docker/aufs/diff/b1c8bba6bd247accbc8082a4c46aa129e2b6489bd9bffe08387e50b43a08e1cd/

bin   dev home  lib64  mnt proc  run   srv tmp  var boot  etc lib   media  opt root  sbin  sys usr

docker镜像的存储路径为/var/lib/docker/aufs/

三:数据挂载到其它位置

Docker的镜像以及一些数据都是在/var/lib/docker目录下,它占用的是Linux的系统分区,也就是下面的/dev/vda1,当有多个镜像时,/dev/vda1的空间可能不足,我们可以把docker的数据挂载到数据盘,例如:/dev/vdb目录下。

[root@10-10-63-106 docker]# df -lhT

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/vda1      xfs        20G  3.8G   16G  20% /

devtmpfs       devtmpfs  916M     0  916M   0% /dev

tmpfs          tmpfs     921M     0  921M   0% /dev/shm

tmpfs          tmpfs     921M   43M  878M   5% /run

tmpfs          tmpfs     921M     0  921M   0% /sys/fs/cgroup

/dev/vdb       xfs       100G   11G   90G  11% /data

其中主要的步骤如下:

(1)       首先,备份fstab文件

sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)

(2)       停止docker, 用rsync同步/var/lib/docker到新位置.

如果rsync没有安装,则使用yum -y intall rsync 进行安装,停止docker ,service docker stop,在数据分区中建立要挂载的目录,mkdir /data/docker 使用rsync工具同步,rsync -aXS /var/lib/docker/.  /data/docker/,这可能需要花费的较长的时间,取决于/var/lib/docker的大小,

(3)       修改fstab

在该文件中把下面一行添加到fstab里,将新位置挂载到 /var/lib/docker

/data/docker /var/lib/docker  none bind 0 0

文件的内如如下:

[root@10-10-63-106 docker]# cat /etc/fstab

# /etc/fstab

# Created by anaconda on Thu Jul 31 07:50:13 2014

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

/dev/vda1                  /                       xfs     errors=remount-ro 0 1

/swapfile                none                    swap    defaults        0 0

/data/docker /var/lib/docker  none bind 0 0

(4)       重新挂载

mount –a

(5)       使用下面的命令检查一下

df /var/lib/docker/

Filesystem     1K-blocks  Used Available Use% Mounted on

/dev/vdb       104806400 47204 104759196   1% /var/lib/docker

(6)进入容器查看我们的空间

bash-4.1# df -lhT

Filesystem    Type    Size  Used Avail Use% Mounted on

rootfs      rootfs    9.8G  1.4G  7.9G  15% /

tmpfs        tmpfs    921M     0  921M   0% /dev

shm          tmpfs     64M     0   64M   0% /dev/shm

/dev/vdb       xfs    100G  2.1G   98G   3% /etc/resolv.conf

/dev/vdb       xfs    100G  2.1G   98G   3% /etc/hostname

/dev/vdb       xfs    100G  2.1G   98G   3% /etc/hosts

tmpfs        tmpfs    921M     0  921M   0% /run/secrets

tmpfs        tmpfs    921M     0  921M   0% /proc/kcore

没有更改/var/lib/docker路径之前的情况:

bash-4.1# df -lhT

Filesystem    Type    Size  Used Avail Use% Mounted on

rootfs      rootfs    9.8G  1.4G  7.9G  15% /

tmpfs        tmpfs    921M     0  921M   0% /dev

shm          tmpfs     64M     0   64M   0% /dev/shm

/dev/vda1      xfs     20G   13G  6.9G  66% /etc/resolv.conf

/dev/vda1      xfs     20G   13G  6.9G  66% /etc/hostname

/dev/vda1      xfs     20G   13G  6.9G  66% /etc/hosts

tmpfs        tmpfs    921M     0  921M   0% /run/secrets

tmpfs        tmpfs    921M     0  921M   0% /proc/kcore

宿主机中的分区大小信息:

[root@10-10-63-106 ~]# df -lhT

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/vda1      xfs        20G   13G  6.9G  65% /

devtmpfs       devtmpfs  916M     0  916M   0% /dev

tmpfs          tmpfs     921M     0  921M   0% /dev/shm

tmpfs          tmpfs     921M   89M  832M  10% /run

tmpfs          tmpfs     921M     0  921M   0% /sys/fs/cgroup

/dev/vdb       xfs       100G   33M  100G   1% /data

docker默认安装路径的调整相关推荐

  1. 修改Docker默认安装路径

    本人是个重度强迫症,所有的软件,都不安装到C盘(系统盘).所以在安装Docker时,也遇到了整个问题.无法更改安装路径,默认安装在C盘,这就让人很不爽,我的电脑,我居然决定不了软件的安装位置?!(其实 ...

  2. Ubuntu修改Docker默认存储路径

    Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等.不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易 ...

  3. php mysql编译安装目录_Linux下Apache PHP MySQL默认安装路径

    Linux下Apache PHP MySQL默认安装路径 Apache 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 Apache配置文件: /etc/httpd/conf/http ...

  4. 用RPM包安装MySQL的默认安装路径问题

    在安装PHP时候要对一些配置选项进行设置,其中就有: --with-mysql[=DIR]:包含MySQL扩展,[=DIR]指定mysql安装目录,省略[=DIR]则为默认位置/usr --with- ...

  5. Apache、php、mysql默认安装路径

    Apache.php.mysql默认安装路径 2010-05-19 15:30 apache:如果采用RPM包安装,安装路径应在 /etc/httpd目录下 apache配置文件:/etc/httpd ...

  6. linux下php的安装路径,Linux下Apache、PHP、MySQL默认安装路径

    Apache: 如果采用RPM包安装,安装路径应在 /etc/httpd 目录下 Apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径:/usr/sbin/ ...

  7. npm修改默认安装路径和数据源

    目录 一.修改默认安装路径 二.安装cnpm 三.修改npm的淘宝数据源 一.修改默认安装路径 1)使用 npm config ls 命令查看npm相关配置 npm config ls 2)修改npm ...

  8. linux rpm包,安装路径查看及改变rpm包默认安装路径

    查看: easwy:~$ rpm -qpl ext3grep-0.10.0-1.el5.rf.i386.rpm/usr/bin/ext3grep/usr/share/doc/ext3grep-0.10 ...

  9. Docker默认存储路径修改

    Docker默认存储路径: # docker info ...... Data loop file: /var/lib/docker/devicemapper/devicemapper/data .. ...

最新文章

  1. 【Linux】 Linux简单操作之网络通信和网络访问
  2. java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata.init(L
  3. 南信大计算机分类,南信大计算机原理样卷
  4. android gps 锁屏更新坐标_MIUI内测版更新日志解析,以及动画解说!
  5. 各自用一句话来概括MVC、MVP、MVVM的差异特点
  6. git 拉取gitlab代码
  7. android远程命令行工具,Android 使用 adb命令 远程安装apk
  8. 学成在线--14.使用RabbitMQ完成页面发布
  9. 用四位led数码管作显示器的篮球比赛24秒计时器求c语言代码,单片机编程控制LED七段数码管作显示的篮球赛计时计分系统...
  10. mysql 从库可以写入吗_mysql主从库配置读写分离以及备份
  11. 你还在抱怨开发工具,为什么不动手优化? | 人物志
  12. 开源项目UIL(UNIVERSAL-IMAGE-LOADER)
  13. Centos7-安装Gradle4.10
  14. Qt编写的RTSP播放器+视频监控(android版本)
  15. 数据中心到底是如何建设的?
  16. html中zoom方法,css中的zoom的作用
  17. 调gensim库,word2vec模型的保存和加载
  18. 如何投稿iMeta期刊?ScholarOne投审稿系统作者使用教程
  19. 纯JS绘制的QQ LOGO
  20. 3_IMX6ULL启动流程

热门文章

  1. 智联物联分享之物联网协议MQTT简述,MQTT协议特点
  2. mysql客户端navicate注释sql语句
  3. 哈工大C语言Mooc 第九周 指针 测验编程题
  4. python 关联规则 实例_利用python进行课程关联(关联规则)
  5. 19c rac gi卸载
  6. vue(8) - 收藏集 - 掘金
  7. I/O设备如何读取数据
  8. 市盈率概念及计算2021-1-19
  9. Tom和Jerry来了,Tom和Jerry走了——北漂18年(38)
  10. 第04课:学习:如何制定学习方案,获取进步捷径