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



