docker启动容器时报错Error response from daemon: mkdir /var/lib/docker/overlay/*** : invalid argument - 技术开发笔记

环境

centos 7.1

docker 17.05-ce

core:3.10

重现步骤

1.新建宿主机

2.修改repo镜像地址

3.安装docker

yum install docker-engine -y

systemctl start docker(启动docker)

systemctl enable docker(设置docker自启动)

docker -v

Docker version 17.05.0-ce, build 89658be

4.安装docker-compose

5.建立docker swarm集群

6.写docker-compose文件

7.执行docker-compose命令报错

分析

怀疑一:docker-compose问题

验证:将命令解析成docker run原始命令依然报错,未解决

怀疑二:docker swarm问题

验证:将节点leave swarm集群环境,用docker run执行,依然报错,未解决

怀疑三:docker volume参数问题

验证:将volume参数去掉,只留最基本的启动参数,依然报错,未解决

怀疑四:镜像问题

验证1:原来使用的是docker.wencst.com私有仓库中的镜像,换成官方镜像,依然报错,未解决

验证2:将同样的docker.wencst.com私有仓库中的镜像在另外的环境中(docker1.12)执行,没有报错,所以镜像没问题

怀疑五:docker版本问题

验证:卸载docker,重新安装docker1.12.4版本,执行docker run命令依然报错,未解决

解决

在qq群里问了一下,大家基本都没有见过这个错误,给出的解决方案也基本为猜测,但在问答的过程中,给了我很多提示,以及排查问题的思路。

docker version命令

实际上一个命令并没有发现问题,只会看到docker的服务端和客户端版本,但引申出另一个命令(docker info)

我注意到了画红框的这里,忽然想起以前学习过程中,说到了docker存储的几种方式:devicemapper、overlay、overlay2、aufs等,据说在docker中存储方式是难点,容易出坑的地方。

于是验证了一下两台宿主机的Storage Driver内容,发现确实不一样,于是做了如下操作:

1.systemctl stop docker

2.将另外宿主机(centos7)中的docker配置文件全部移植到新的宿主机(出问题的宿主机)上,文件包括:

/usr/lib/systemd/system/docker.service

/etc/sysconfig/docker

/etc/sysconfig/docker-network

/etc/sysconfig/docker-storage

/etc/sysconfig/docker-storage-setup

3.删除/var/lib/docker文件夹下的文件内容全部删除(注意一定要执行删除,否则无法修改参数)

4.systemctl start docker

5.docker info

6.执行docker run -d registry:2.1.1,成功完成

其他解决方法

以上解决方法是针对docker1.12版本的,因为以前在安装docker 1.12版本时,默认是用的devicemapper的存储引擎,所以迁移过来后直接就可以用了。

但对于docker 17.05-ce,我怀疑在安装这个docker版本时,默认使用的是overlay的存储引擎,所以才会出现上面的问题。

[

](https://www.googleadservices.com/pagead/aclk?sa=L&ai=CXCgh91eEY-vSHM2B8wOO9rboCab6uKFto5Xb8-QPwI23ARABIO-b4m5gnQGgAbDKx-kDyAEJqAMByAPLBKoE9wFP0K3Xf79rcIEjABi2774xATvOl_aiBD_0fHy1V08_HMKjwrCInHDH-AgRkOMgK2p6rSbVhAWSAQrs_oG5Vn0e_hvUGDnLAR5F528_N8UdoK4T0FppEHnhj9zIQoSnk9Uhy28PAWMgQxmS57HhTBGMW2OjCZ_u4woA-xzebKbRMF2zN7iY4cZPkIAllU0Hnp3k_ijE2QHfJgWLpU-dSBa1Qa7P1-1cd3HoV25gsQTQYn5z_d_70gjjhO-nOhXRmI98yqtqVO6UJHmu3giGFrn6Te-ByFXuBKZwRB8NVwi1mxDFAHPSYt9gk_KdEdSeyRLG8grZaIWuwASBmdfn9AOgBi6AB7i1uBaoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQmdSb3nNgZ0w4AKAZgLAcgLAYAMAbgMAdgTDtAVAfgWAYAXAQ&ae=1&num=1&cid=CAQSOwDq26N9f6jgN6sGCXslOFXfqFYNR5-rFjsVt4tXnruvi-Mlqx5uZRteJp5j8r0cy80Fj5kWfrSpR85oGAEgEw&sig=AOD64_1sH1ZLqE7rFk_n-1DGvPSl_100yA&client=ca-pub-4509115540848714&nb=9&adurl=https://www.spglobal.com/marketintelligence/en/campaigns/sp-capital-iq-pro%3Futm_source%3Dgoogle%26utm_medium%3Ddisplay%26utm_campaign%3DCIQPro_Display_Pro_ENG_Desktop_Lower_Funnel_Google%26utm_term%3D%26utm_content%3D590059110886%26_bt%3D590059110886%26_bk%3D%26_bm%3D%26_bn%3Dd%26_bg%3D134435163265%26gclid%3DEAIaIQobChMIq6qPuqLQ-wIVzcB8Ch0Ouw2dEAEYASAAEgLLh_D_BwE)

S&P Capital IQ Pro

Advanced visualization tools

[](https://www.googleadservices.com/pagead/aclk?sa=L&ai=CXCgh91eEY-vSHM2B8wOO9rboCab6uKFto5Xb8-QPwI23ARABIO-b4m5gnQGgAbDKx-kDyAEJqAMByAPLBKoE9wFP0K3Xf79rcIEjABi2774xATvOl_aiBD_0fHy1V08_HMKjwrCInHDH-AgRkOMgK2p6rSbVhAWSAQrs_oG5Vn0e_hvUGDnLAR5F528_N8UdoK4T0FppEHnhj9zIQoSnk9Uhy28PAWMgQxmS57HhTBGMW2OjCZ_u4woA-xzebKbRMF2zN7iY4cZPkIAllU0Hnp3k_ijE2QHfJgWLpU-dSBa1Qa7P1-1cd3HoV25gsQTQYn5z_d_70gjjhO-nOhXRmI98yqtqVO6UJHmu3giGFrn6Te-ByFXuBKZwRB8NVwi1mxDFAHPSYt9gk_KdEdSeyRLG8grZaIWuwASBmdfn9AOgBi6AB7i1uBaoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQmdSb3nNgZ0w4AKAZgLAcgLAYAMAbgMAdgTDtAVAfgWAYAXAQ&ae=1&num=1&cid=CAQSOwDq26N9f6jgN6sGCXslOFXfqFYNR5-rFjsVt4tXnruvi-Mlqx5uZRteJp5j8r0cy80Fj5kWfrSpR85oGAEgEw&sig=AOD64_1sH1ZLqE7rFk_n-1DGvPSl_100yA&client=ca-pub-4509115540848714&nb=8&adurl=https://www.spglobal.com/marketintelligence/en/campaigns/sp-capital-iq-pro%3Futm_source%3Dgoogle%26utm_medium%3Ddisplay%26utm_campaign%3DCIQPro_Display_Pro_ENG_Desktop_Lower_Funnel_Google%26utm_term%3D%26utm_content%3D590059110886%26_bt%3D590059110886%26_bk%3D%26_bm%3D%26_bn%3Dd%26_bg%3D134435163265%26gclid%3DEAIaIQobChMIq6qPuqLQ-wIVzcB8Ch0Ouw2dEAEYASAAEgLLh_D_BwE)

S&P Global

Learn More

[

](https://www.googleadservices.com/pagead/aclk?sa=L&ai=CXCgh91eEY-vSHM2B8wOO9rboCab6uKFto5Xb8-QPwI23ARABIO-b4m5gnQGgAbDKx-kDyAEJqAMByAPLBKoE9wFP0K3Xf79rcIEjABi2774xATvOl_aiBD_0fHy1V08_HMKjwrCInHDH-AgRkOMgK2p6rSbVhAWSAQrs_oG5Vn0e_hvUGDnLAR5F528_N8UdoK4T0FppEHnhj9zIQoSnk9Uhy28PAWMgQxmS57HhTBGMW2OjCZ_u4woA-xzebKbRMF2zN7iY4cZPkIAllU0Hnp3k_ijE2QHfJgWLpU-dSBa1Qa7P1-1cd3HoV25gsQTQYn5z_d_70gjjhO-nOhXRmI98yqtqVO6UJHmu3giGFrn6Te-ByFXuBKZwRB8NVwi1mxDFAHPSYt9gk_KdEdSeyRLG8grZaIWuwASBmdfn9AOgBi6AB7i1uBaoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQmdSb3nNgZ0w4AKAZgLAcgLAYAMAbgMAdgTDtAVAfgWAYAXAQ&ae=1&num=1&cid=CAQSOwDq26N9f6jgN6sGCXslOFXfqFYNR5-rFjsVt4tXnruvi-Mlqx5uZRteJp5j8r0cy80Fj5kWfrSpR85oGAEgEw&sig=AOD64_1sH1ZLqE7rFk_n-1DGvPSl_100yA&client=ca-pub-4509115540848714&nb=8&adurl=https://www.spglobal.com/marketintelligence/en/campaigns/sp-capital-iq-pro%3Futm_source%3Dgoogle%26utm_medium%3Ddisplay%26utm_campaign%3DCIQPro_Display_Pro_ENG_Desktop_Lower_Funnel_Google%26utm_term%3D%26utm_content%3D590059110886%26_bt%3D590059110886%26_bk%3D%26_bm%3D%26_bn%3Dd%26_bg%3D134435163265%26gclid%3DEAIaIQobChMIq6qPuqLQ-wIVzcB8Ch0Ouw2dEAEYASAAEgLLh_D_BwE)

方案一:可以在/usr/lib/systemd/system/docker.service中增加如下参数

方案二:可以在/etc/docker/文件夹下修改daemon.json文件(如果没有则新增,docker会默认读取这个文件的)

上述两个方案,都是需要重启docker服务的。注意在生产环境中尽量不要使用overlay的存储引擎,如果能用Ubuntu操作系统作为docker宿主机最好,如果必须使用centos系统,则替换为devicemapper存储引擎。

原因

这类问题一般是 CentOS/RHEL 红帽系的问题,CentOS 这类红帽系统中,由于不像 Ubuntu 那样有成熟的 Union FS实现(如aufs),所以只能使用 devicemapper,而默认使用的是lvm-loop,也就是用一个稀疏文件来当成一个块设备,给devicemapper用,作为Docker镜像容器文件系统。这是非常不推荐使用的,性能很差不说,不稳定,还有很多 bug,如果没办法换 Ubuntu/Debian 系统,那么最起码应该建立块设备(分区、卷)给 devicemapper 用。

参考官网文档:https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#configure-direct-lvm-mode-for-production

[

](https://www.googleadservices.com/pagead/aclk?sa=L&ai=C_i2sA1iEY_XiFs-X8wO0z6joB6b6uKFto5Xb8-QPwI23ARABIO-b4m5gnQGgAbDKx-kDyAEJqAMByAPLBKoE9wFP0FIKT6Jrlkc3WM_6IjMvWO1nm8tLFZE2XfAdc4s35zlkES5FEU54eun2XXSCFedIIECaOfqPv_R8Ih-eP0M3B5ScYHfVzuElkFMTVKi-LZp4KJkUwFXj6k0RwDFHSLTbKsRaqB87PfzECbduONrZ4I29No05SxIi124DDVyaaYIJByOhNwCSFc94ZqEdVeEZft0t8199NRpuAZvv9r_VKagf3X5hxjsRVqLfDX98LYI_5k61EBdQwVeQpKaibiiK2vPo7JM9SFsICrf-owMXwnSEOXsW4vgWa328IhgQxTvfRVzH3RcBSgyxn16B8l0OOlMfu7lfwASBmdfn9AOgBi6AB7i1uBaoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQmdSb3nNgZ0w4AKAZgLAcgLAYAMAbgMAdgTDtAVAfgWAYAXAQ&ae=1&num=1&cid=CAQSOwDq26N9V3nsau39VYNGijE1c01xIkPolMvsRlgY27k2O41kz2FVBjN1zskWm3zA4f73OVJoRJpfWEuoGAEgEw&sig=AOD64_26CJQp4lRbffAU8nsXGn4ooYrlIg&client=ca-pub-4509115540848714&nb=9&adurl=https://www.spglobal.com/marketintelligence/en/campaigns/sp-capital-iq-pro%3Futm_source%3Dgoogle%26utm_medium%3Ddisplay%26utm_campaign%3DCIQPro_Display_Pro_ENG_Desktop_Lower_Funnel_Google%26utm_term%3D%26utm_content%3D590059110886%26_bt%3D590059110886%26_bk%3D%26_bm%3D%26_bn%3Dd%26_bg%3D134435163265%26gclid%3DEAIaIQobChMItfDlv6LQ-wIVz8t8Ch20Jwp9EAEYASAAEgKvNPD_BwE)

S&P Capital IQ Pro

Advanced visualization tools

[](https://www.googleadservices.com/pagead/aclk?sa=L&ai=C_i2sA1iEY_XiFs-X8wO0z6joB6b6uKFto5Xb8-QPwI23ARABIO-b4m5gnQGgAbDKx-kDyAEJqAMByAPLBKoE9wFP0FIKT6Jrlkc3WM_6IjMvWO1nm8tLFZE2XfAdc4s35zlkES5FEU54eun2XXSCFedIIECaOfqPv_R8Ih-eP0M3B5ScYHfVzuElkFMTVKi-LZp4KJkUwFXj6k0RwDFHSLTbKsRaqB87PfzECbduONrZ4I29No05SxIi124DDVyaaYIJByOhNwCSFc94ZqEdVeEZft0t8199NRpuAZvv9r_VKagf3X5hxjsRVqLfDX98LYI_5k61EBdQwVeQpKaibiiK2vPo7JM9SFsICrf-owMXwnSEOXsW4vgWa328IhgQxTvfRVzH3RcBSgyxn16B8l0OOlMfu7lfwASBmdfn9AOgBi6AB7i1uBaoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQmdSb3nNgZ0w4AKAZgLAcgLAYAMAbgMAdgTDtAVAfgWAYAXAQ&ae=1&num=1&cid=CAQSOwDq26N9V3nsau39VYNGijE1c01xIkPolMvsRlgY27k2O41kz2FVBjN1zskWm3zA4f73OVJoRJpfWEuoGAEgEw&sig=AOD64_26CJQp4lRbffAU8nsXGn4ooYrlIg&client=ca-pub-4509115540848714&nb=8&adurl=https://www.spglobal.com/marketintelligence/en/campaigns/sp-capital-iq-pro%3Futm_source%3Dgoogle%26utm_medium%3Ddisplay%26utm_campaign%3DCIQPro_Display_Pro_ENG_Desktop_Lower_Funnel_Google%26utm_term%3D%26utm_content%3D590059110886%26_bt%3D590059110886%26_bk%3D%26_bm%3D%26_bn%3Dd%26_bg%3D134435163265%26gclid%3DEAIaIQobChMItfDlv6LQ-wIVz8t8Ch20Jwp9EAEYASAAEgKvNPD_BwE)

S&P Global

Learn More

[

](https://www.googleadservices.com/pagead/aclk?sa=L&ai=C_i2sA1iEY_XiFs-X8wO0z6joB6b6uKFto5Xb8-QPwI23ARABIO-b4m5gnQGgAbDKx-kDyAEJqAMByAPLBKoE9wFP0FIKT6Jrlkc3WM_6IjMvWO1nm8tLFZE2XfAdc4s35zlkES5FEU54eun2XXSCFedIIECaOfqPv_R8Ih-eP0M3B5ScYHfVzuElkFMTVKi-LZp4KJkUwFXj6k0RwDFHSLTbKsRaqB87PfzECbduONrZ4I29No05SxIi124DDVyaaYIJByOhNwCSFc94ZqEdVeEZft0t8199NRpuAZvv9r_VKagf3X5hxjsRVqLfDX98LYI_5k61EBdQwVeQpKaibiiK2vPo7JM9SFsICrf-owMXwnSEOXsW4vgWa328IhgQxTvfRVzH3RcBSgyxn16B8l0OOlMfu7lfwASBmdfn9AOgBi6AB7i1uBaoB47OG6gHk9gbqAfulrECqAf-nrECqAeko7ECqAfVyRuoB6a-G6gHmgaoB_PRG6gHltgbqAeqm7ECqAf_nrECqAffn7EC2AcA0ggPCIBhEAEYHzICigI6AoBAsQmdSb3nNgZ0w4AKAZgLAcgLAYAMAbgMAdgTDtAVAfgWAYAXAQ&ae=1&num=1&cid=CAQSOwDq26N9V3nsau39VYNGijE1c01xIkPolMvsRlgY27k2O41kz2FVBjN1zskWm3zA4f73OVJoRJpfWEuoGAEgEw&sig=AOD64_26CJQp4lRbffAU8nsXGn4ooYrlIg&client=ca-pub-4509115540848714&nb=8&adurl=https://www.spglobal.com/marketintelligence/en/campaigns/sp-capital-iq-pro%3Futm_source%3Dgoogle%26utm_medium%3Ddisplay%26utm_campaign%3DCIQPro_Display_Pro_ENG_Desktop_Lower_Funnel_Google%26utm_term%3D%26utm_content%3D590059110886%26_bt%3D590059110886%26_bk%3D%26_bm%3D%26_bn%3Dd%26_bg%3D134435163265%26gclid%3DEAIaIQobChMItfDlv6LQ-wIVz8t8Ch20Jwp9EAEYASAAEgKvNPD_BwE)

严格来说 CentOS/RHEL 7 中实际上有一个 Union FS 实现,虽然 CentOS/RHEL 7 的内核是 3.10,不过红帽从 Linux 3.18 backport 回来了 overlay fs 的驱动。但是,红帽自己都在官方的发布声明中说能不要用就不用。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/7.2_Release_Notes/technology-preview-file_systems.html


原网址: 访问
创建于: 2022-11-28 14:43:31
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论