在CentOS和Ubuntu上安装和配置docker

整理docker安装心得。

CentOS

# 移除旧版
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 设置阿里云仓库repository
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
   https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装containerd.io
sudo yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
# 安装docker
sudo yum install docker-ce docker-ce-cli

Ubuntu

# 移除旧版
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装依赖软件
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
# 添加中科大DockerGPG KEY
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 添加中科大仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"
# 安装docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Fedora

sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

sudo dnf -y install dnf-plugins-core

sudo dnf config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/fedora/docker-ce.repo

sudo dnf install docker-ce docker-ce-cli containerd.io

Debian

sudo apt-get remove docker docker-engine docker.io containerd runc

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    software-properties-common
# 添加中科大DockerGPG KEY
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
# 添加中科大仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) stable"
# 安装docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

以上操作完毕后,继续操作下面通用部分。

通用

# 启动docker
sudo systemctl start docker
# 加入开机启动
sudo systemctl enable docker
# 允许当前用户使用docker
sudo usermod -aG docker ${USER}
su - $USER //立刻生效
# 配置国内加速器(可显著增加docker pull镜像的成功率和速度)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://97g5u05j.mirror.aliyuncs.com",
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

参考链接:
https://docs.docker.com/engine/install/
https://developer.aliyun.com/article/763983
https://www.jianshu.com/p/5a911f20d93e
https://blog.csdn.net/Alexhcf/article/details/106726860
Linux 修改用户组后,如何关闭所有 X session 下使得组生效?