docker安装

docker安装

方法

  1. 官方二进制包
  2. 官方源 + deb rpm 包
  3. os系统厂商的包
  4. 云平台的包
  5. 其它包管理器的包

注意兼容性, 我曾在一台机器上发现3个不同docker版本

官方二进制方式

https://download.docker.com/linux/static/stable/x86_64/

https://github.com/docker/compose/releases/

常用的安装脚本

#!/bin/bash
# install_docker_ce.sh

set -e

# 提前下载的文件
file_docker="https://files.services.wait/soft/docker-29.1.3.tgz"
file_compose="https://files.services.wait/soft/docker-compose-linux-x86_64-v5.0.0"

wget $file_docker
tar xf docker-29.1.3.tgz
mv docker/* /usr/local/bin/

cat << 'EOF' >> /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

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

cat << 'EOF' > /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
EOF


mkdir -p /etc/docker
cat >> /etc/docker/daemon.json << 'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

systemctl daemon-reload
systemctl start docker
systemctl enable docker

# docker-compose 插件
mkdir -p /usr/lib/docker/cli-plugins
wget $file_compose -O /usr/lib/docker/cli-plugins/docker-compose
chmod +x /usr/lib/docker/cli-plugins/docker-compose
docker compose version
docker completion bash > /etc/bash_completion.d/docker-ce

官方源+镜像源方式

ubuntu

# 官方源
sources_url_gpg="https://download.docker.com/linux/ubuntu/gpg"
sources_url_download="https://download.docker.com/linux/ubuntu"

# tsinghua 清华镜像站
sources_url_gpg="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg"
sources_url_download="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu"

# 中科大镜像站 - 推荐
sources_url_gpg="https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg"
sources_url_download="https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu"

# 阿里云
sources_url_gpg="https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg"
sources_url_download="https://mirrors.aliyun.com/docker-ce/linux/ubuntu"

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL $sources_url_gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# or sudo apt-key add -

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] $sources_url_download \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# sudo apt install docker-buildx-plugin

# 普通用户
sudo gpasswd -a ${USER} docker


# 安装指定版本
apt-cache madison docker-ce             # 搜索支持的版本
apt-get -y install docker-ce=[VERSION]

debian

sources_url_gpg="https://download.docker.com/linux/debian/gpg"
sources_url_download="https://download.docker.com/linux/debian"

apt-get install ca-certificates curl gnupg

install -m 0755 -d /etc/apt/keyrings
curl -fsSL $sources_url_gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg


echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] $sources_url_download \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null


sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

el7


# 阿里云
source_repo="http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"

# 官方
source_repo="https://download.docker.com/linux/centos/docker-ce.repo"

yum install -y yum-utils

yum-config-manager --add-repo $source_repo

yum install docker-ce

systemctl start docker
systemctl enable docker

docker info

# 指定版本
yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io-1.2.13

dnf

dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io

wget https://download.docker.com/linux/fedora/docker-ce.repo
mv docker-ce.repo /etc/yum.repos.d/

sudo systemctl start docker
sudo systemctl enable docker

aws安装

sudo yum install -y amazon-linux-extras yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --enable extras
sudo amazon-linux-extras install docker

sudo amazon-linux-extras install docker-compose-plugin

# 列出支持的模块
amazon-linux-extras list

sudo systemctl start docker
sudo systemctl enable docker.service

# 可选
sudo usermod -a -G docker ec2-user
最后更新于