栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker Engine 安装时遇到的坑

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker Engine 安装时遇到的坑

记录最近学习Docker on CentOS遇到的一些安装与配置问题

1、使用一键安装脚本安装失败

curl -fsSL https://get.docker.com | bash -s docker

该命令报错

---> Package docker-scan-plugin.x86_64 0:0.8.0-3.el7 will be installed
---> Package libcgroup.x86_64 0:0.41-21.el7 will be installed
---> Package libseccomp.x86_64 0:2.3.1-4.el7 will be installed
--> Finished Dependency Resolution
Error: Package: 3:docker-ce-20.10.8-3.el7.x86_64 (docker-ce-stable)
           Requires: container-selinux >= 2:2.74
Error: Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable)
           Requires: fuse-overlayfs >= 0.7
Error: Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable)
           Requires: slirp4netns >= 0.4
Error: Package: containerd.io-1.4.9-3.1.el7.x86_64 (docker-ce-stable)

解决方法:手动安装

sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

/etc/yum.repos.d/docker-ce.repo中添加:

[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0

随后

sudo yum -y install docker-ce docker-ce-cli containerd.io

2、安装时报错GateWay 504
重建缓存一般可以解决

yum clean all
yum makecache 

3、Got permission denied while trying to connect to the Docker daemon socket at unix

Got permission denied while trying to connect to the Docker daemon
socket at unix:///var/run/docker.sock: Post
“http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=repo.cisco.com&tag=latest”:
dial unix /var/run/docker.sock: connect: permission denied

起初搜到的都是没有add user到docker,但是执行了sudo usermod -aG docker youruser,并sudo newgrp docker后依然无效,经过各种查询,最终定位到:

stat -c %U:%G /var/run/docker.sock
root:root

相关文档

the default Docker Unix socket file should be owned by root and group
owned by docker to maintain the integrity of the socket file.

解决办法即

chown root:docker /var/run/docker.sock

最后附上自己写的installdocker.sh

#!/bin/bash

echo "Checking Docker......"
docker -v 2>/dev/null
if [ $? -eq  0 ]; then
    echo "Docker has been already installed."
else
    echo "Docker hasn't been installed, start installation..."
    sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

    sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

    repoexist=`grep "centos-extras" /etc/yum.repos.d/docker-ce.repo |wc -l`
    if [ ${repoexist} -eq  0 ]; then
        echo -e "[centos-extras]nname=Centos extras - $basearchnbaseurl=http://mirror.centos.org/centos/7/extras/x86_64nenabled=1ngpgcheck=0nn$(cat /etc/yum.repos.d/docker-ce.repo)" > /etc/yum.repos.d/docker-ce.repo
    fi

    sudo yum -y install docker-ce docker-ce-cli containerd.io
    if [ $? -ne 0 ]; then
        echo "Fail to install Docker"
        exit 1
    fi

    sudo systemctl start docker

    echo "Configuring environment..."

    sudo groupadd docker 2>/dev/null
    echo "usermod -aG docker youruser"
    sudo usermod -aG docker youruser

    echo "Enable autorun at startup"
    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service

    dockersock=`stat -c %U:%G /var/run/docker.sock | grep -v root:docker | wc -l`
    if [ ${dockersock} -ne 0 ]; then
        echo "chown root:docker /var/run/docker.sock"
        chown root:docker /var/run/docker.sock
    fi

    mkdir /etc/docker 2>/dev/null
    echo "{"log-driver":"json-file","log-opts": {"max-size":"50m", "max-file":"3"}}" >/etc/docker/daemon.json
    systemctl daemon-reload
    systemctl restart docker

    echo "Docker installation finished!"
fi
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号