中国大陆 centos 7.9 ubuntu 22.04 安装Docker和Docker Compose
在中国大陆安装Docker和Docker Compose需要使用国内的镜像源,因为直接访问官方源可能会出现连接速度慢或无法连接的情况。以下是针对中国大陆网络环境的安装方法:
中国大陆 ubuntu 22.04 安装Docker
- 首先更新软件包索引并安装必要的依赖:
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
- 添加Docker的阿里云GPG密钥:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
或者添加清华大学TUNA 的 GPG 密钥:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 设置Docker的阿里云镜像仓库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
或者相应的添加清华大学 TUNA 的软件源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 更新apt索引并安装Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 验证Docker安装是否成功:
sudo docker run hello-world
把上面的安装步骤做成一个脚本:
#!/bin/bash
# Ubuntu 22.04 Docker一键安装脚本(使用阿里云镜像源)
# 使用方法: chmod +x install_docker.sh && sudo ./install_docker.sh
set -e
echo "正在更新软件包索引并安装必要依赖..."
apt update
apt install -y ca-certificates curl gnupg lsb-release
echo "正在添加Docker的阿里云GPG密钥..."
mkdir -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "正在设置Docker的阿里云镜像仓库..."
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release>
echo "正在更新apt索引并安装Docker..."
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
echo "Docker安装完成!"
# 输出版本信息
echo -e "\n=== 版本信息 ==="
echo "Docker 版本: $(docker --version | cut -d' ' -f3 | tr -d ',')"
echo "Docker Compose 版本: $(docker compose version | grep -oP 'v\K\d+\.\d+\.\d+')"
# 验证安装
echo -e "\n正在验证Docker安装..."
将上面的代码保存为install_docker.sh 给脚本添加执行权限:chmod +x install_docker.sh 使用root权限运行脚本:sudo ./install_docker.sh
配置Docker国内镜像加速 安装完Docker后,建议配置国内镜像加速器以提高Docker镜像下载速度:
- 创建Docker配置目录:
sudo mkdir -p /etc/docker
- 配置镜像加速器(可选择以下任一加速器或多个):
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
- 重启Docker服务使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证加速器是否生效: docker info 在输出的信息中查找 Registry Mirrors: 部分,应该能看到你配置的加速器地址列表
安装Docker Compose 可以通过以下方式安装Docker Compose:
# 使用国内镜像源下载Docker Compose
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d'"' -f4)
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
如果上面的方法下载速度仍然很慢,可以尝试使用下面的清华大学镜像:
# 例如安装2.23.0版本
export DOCKER_COMPOSE_VERSION=2.23.0
sudo curl -L "https://mirrors.tuna.tsinghua.edu.cn/docker-compose/linux/$(uname -s)/$(uname -m)/docker-compose-linux-$(uname -m)-${DOCKER_COMPOSE_VERSION}" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
将当前用户添加到docker组
sudo usermod -aG docker $USER
记得注销并重新登录以使更改生效。
验证安装
# 检查Docker版本
docker --version
# 检查Docker Compose版本
docker compose version
………………………………..
下面是更详细的在centos 7.9 ubuntu 22.04 中安装Docker和Docker Compose整理:
CentOS 7.9 安装 Docker 和 Docker Compose
安装必要依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
配置国内 Docker 源
# 阿里云
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 或者腾讯云
yum-config-manager --add-repo https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker 和 Docker Compose
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动 Docker 并设置开机自启 systemctl start docker systemctl enable docker 配置国内 Docker 镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
]
}
EOF
重启 Docker 使其生效: systemctl daemon-reload systemctl restart docker 验证 Docker 和 Docker Compose 插件: docker version docker compose version 验证加速器是否生效: docker info 在输出的信息中查找 Registry Mirrors: 部分,应该能看到你配置的加速器地址列表
Ubuntu 22.04 安装 Docker 和 Docker Compose 更新软件包: sudo apt update -y sudo apt install -y ca-certificates curl gnupg lsb-release 配置国内 Docker 源:
# 创建 keyring 目录
sudo mkdir -p /etc/apt/keyrings
# 阿里云 Docker GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc
# 添加 Docker 阿里云仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker 和 Docker Compose: sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 启动 Docker 并设置开机自启 sudo systemctl start docker sudo systemctl enable docker 配置国内 Docker 镜像加速: 创建或修改 /etc/docker/daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
]
}
EOF
重启 Docker 使其生效: sudo systemctl daemon-reload sudo systemctl restart docker 验证 Docker 和 Docker Compose 插件: docker version docker compose version 验证加速器是否生效: docker info 在输出的信息中查找 Registry Mirrors: 部分,应该能看到你配置的加速器地址列表 ………………………………
Docker 默认将镜像、容器、卷等数据存储在 /var/lib/docker 目录下。如果你想将其更改为 /home/docker(或其他路径),可以按照以下步骤操作: 方法 1:修改 Docker 配置文件(推荐) 停止 Docker 服务 sudo systemctl stop docker 复制现有 Docker 数据到新路径 sudo mv /var/lib/docker /home/docker 如果 /home 在不同的磁盘分区,建议使用 rsync 进行复制: sudo rsync -aP /var/lib/docker /home/ sudo rm -rf /var/lib/docker 修改 Docker 配置 编辑 daemon.json(如果不存在就新建): sudo mkdir -p /etc/docker sudo nano /etc/docker/daemon.json 添加或修改以下内容: { “data-root”: “/home/docker” } 注意:data-root 指定 Docker 的数据存储路径。 重新加载并启动 Docker sudo systemctl daemon-reload sudo systemctl start docker 验证是否修改成功 docker info | grep “Docker Root Dir” Docker Root Dir: /home/docker 说明已经成功修改。
方法 2:使用 systemd 配置覆盖 如果你不想修改 daemon.json,也可以使用 systemd 方式修改 Docker 的存储路径。 创建 systemd 配置覆盖 sudo mkdir -p /etc/systemd/system/docker.service.d sudo nano /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --data-root=/home/docker -H fd://
重新加载 systemd 并重启 Docker sudo systemctl daemon-reload sudo systemctl restart docker ………………………………..
查看docker 镜像的存储路径
sudo docker info | grep “Storage Driver”
镜像文件默认存放在 /var/lib/docker/<存储驱动>/ 目录下,其中 <存储驱动> 取决于 Docker 使用的存储驱动,常见的有 overlay2、aufs、btrfs、zfs 等
sudo ls /var/lib/docker/
进入目录:
需要切换成root用户
cd /var/lib/docker/overlay2
或者
sudo bash -c “cd /var/lib/docker/overlay2 && bash”
这里会自动切换成root用户查看
查看某个镜像的具体存储位置:
列出所有镜像
sudo docker images
用 docker inspect 命令获取某个镜像的详细信息
sudo docker inspect cb1febb7d8ae
其中找到 GraphDriver.Data.LowerDir 和 GraphDriver.Data.UpperDir,这些路径就是该镜像的存储位置