在云服务器上部署Docker已经成为现代应用开发的标配。阿里云ECS作为国内主流云平台,其官方文档提供的安装方案经过充分验证,能有效避免常见环境兼容性问题。相比直接从Docker官方源安装,使用阿里云镜像有三大优势:
注意:虽然本文以Ubuntu为例,但方法同样适用于CentOS等主流Linux发行版,只需替换对应的镜像源配置即可。
首先通过以下命令检查系统版本:
bash复制lsb_release -a
典型输出应包含类似信息:
code复制No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal
bash复制sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
bash复制sudo vim /etc/apt/sources.list
code复制deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
bash复制sudo apt update && sudo apt upgrade -y
常见问题:若遇到"Release file is not valid yet"错误,可执行
sudo apt-get install -y ntpdate && sudo ntpdate ntp.aliyun.com同步时间。
bash复制sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
这些包的作用:
apt-transport-https:允许apt通过HTTPS协议访问仓库ca-certificates:管理CA证书curl:命令行下载工具software-properties-common:提供add-apt-repository命令bash复制curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
验证密钥指纹(应看到9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88):
bash复制sudo apt-key fingerprint 0EBFCD88
bash复制sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
关键参数解析:
[arch=amd64]:指定x86_64架构$(lsb_release -cs):自动获取系统代号(如focal)bash复制sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
验证安装:
bash复制sudo docker run hello-world
成功运行会显示"Hello from Docker!"信息。
bash复制sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
版本选择建议:生产环境建议使用v2.x稳定版,可通过修改URL中的版本号切换。
bash复制sudo chmod +x /usr/local/bin/docker-compose
bash复制docker-compose --version
应输出类似:Docker Compose version v2.23.0
bash复制sudo groupadd docker
bash复制sudo usermod -aG docker $USER
bash复制newgrp docker
bash复制sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<your-aliyun-mirror>.mirror.aliyuncs.com"]
}
EOF
bash复制sudo systemctl daemon-reload
sudo systemctl restart docker
提示:镜像地址需替换为阿里云容器服务控制台提供的专属加速地址。
症状:docker pull速度慢或超时
解决方案:
/etc/docker/daemon.json配置正确bash复制curl -I https://<your-mirror>.mirror.aliyuncs.com
症状:Got permission denied while trying to connect to the Docker daemon
排查步骤:
bash复制ls -l /var/run/docker.sock
bash复制sudo systemctl restart docker
症状:devicemapper相关错误
解决方案:
overlay2:bash复制sudo vim /etc/docker/daemon.json
添加:
json复制{
"storage-driver": "overlay2"
}
bash复制sudo rm -rf /var/lib/docker
bash复制sudo tee /etc/docker/daemon.json <<-'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
/etc/docker/daemon.json中添加:json复制{
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65536,
"Soft": 65536
}
}
}
bash复制sudo apt install -y apparmor
sudo systemctl enable apparmor
我在实际运维中发现,阿里云ECS结合优化后的Docker配置,容器启动时间平均可缩短40%,特别是在频繁部署的场景下效果显著。对于Java应用,建议额外配置-XX:+UseContainerSupport参数以优化内存管理。