赞
踩
报错信息如下:
docker: Error response from daemon: oci runtime error: container_linux.go:303: starting container process caused "process_linux.go:364: container init caused \"rootfs_linux.go:57: mounting \\\"mqueue\\\" to rootfs \\\"/var/lib/docker/5000.5000/overlay2/6e0e6256a06b2c6d283a285737f67257fa35190b43286d951c496f3bc0652d83/merged\\\" at \\\"/dev/mqueue\\\" caused \\\"operation not permitted\\\"\"".
主要报错信息:
mounting \“mqueue\” to rootfs \"/var/lib/docker/5000.5000/overlay2/6e0e6256a06b2c6d283a285737f67257fa35190b43286d951c496f3bc0652d83/merged\" at \"/dev/mqueue\" caused \“operation not permitted\”
在daemon.json配置文件中,开启了userns-remap的同时,还开启了selinux。
关闭selinux或者关闭userns-remap。
关闭userns-remap会导致所有镜像和容器都不在了(因为开启了userns-remap以后,容器和镜像的文件保存在/var/lib/docker/uid.gid文件夹中,没有开启userns-remap的容器和镜像文件保存在/var/lib/docker文件夹中)。因此,推荐关闭selinux。
"selinux-enabled": false
进一步的处理方案待验证。
{
"insecure-registries": [
"[::1]:5000",
"172.17.0.1:5000",
"0.0.0.0/0",
"::/0"
],
"live-restore": true
}
docker pull registry
docker tag centos:latest localhost:5000/centos
docker tag centos:latest 172.17.0.1:5000/centos
docker tag centos:latest 127.0.0.1:5000/centos
docker run -id --name registry-latest -p 5000:5000 -v /var/lib/docker/registry:/var/lib/registry registry:latest
-v 参数中,第一个/var/lib/registry表示主机侧的/var/lib/docker/registry目录。第二个/var/lib/registry表示容器的/var/lib/registry目录。
我们将镜像推送到registry容器中,registry容器默认会把推送来的镜像保存到容器中的/var/lib/registry目录下。
将主机侧的/var/lib/docker/registry目录挂载到容器内的/var/lib/registry目录上。
docker push localhost:5000/centos
docker push 172.17.0.1:5000/centos
docker push 127.0.0.1:5000/centos
docker push localhost报错。
而docker push 172.17.0.1:5000和127.0.0.1都没有报错。
报错信息如下:
[root@vm-62 ~]# docker push localhost:5000/centos
The push refers to a repository [localhost:5000/centos]
Put "http://localhost:5000/v1/repositories/centos/": EOF
docker 的localhost默认为0.0.0.0。可以通过docker ps查看registry容器可以看到。
[root@vm-62 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19ae1c24f5be registry:latest "/entrypoint.sh /e..." 15 minutes ago Up 15 minutes 0.0.0.0:5000->5000/tcp registry-x86
是将主机侧的0.0.0.0:5000映射到了容器的5000。
所以localhost解析不出来。报错。
启动容器的时候指定映射ip为127.0.0.1。
docker run -id --name registry-latest -p 127.0.0.1:5000:5000 registry
然后再进行push localhost就不会报错了。(但是不能docker push 172了)
docker push localhost:5000/centos
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。