在阿里云 Linux 3 上驯服 Docker

作者:司陌笙

环境:阿里云 ECS / Alibaba Cloud Linux 3

标签:Docker、Zabbix、排错、阿里云、运维学习

一、 本期核心知识点:

  1. Docker 为什么存在?​ 为了解决“在我电脑上是好的”这种千古难题。把环境和代码打包在一起,到哪都能跑。
  2. 镜像(Image) vs 容器(Container)
    • 镜像:像 ISO 系统文件、Class 类定义,是静态的模板。
    • 容器:像装好的操作系统、new 出来的对象,是运行时的实体。
  3. Docker Hub 是什么?​ 官方的“应用商店”。docker pull nginx就是从这里下载的。 划重点:在国内,如果不配置加速器,这个“应用商店”基本是打不开的(亲身体验)。

二、 必学实操命令

这几条命令是 Docker 的“吃饭家伙”,必须形成肌肉记忆:

# 1. 查看 Docker 状态和信息
docker version
docker info

# 2. 镜像相关(Image)
docker pull nginx          # 拉取镜像
docker images              # 查看本地有哪些镜像
docker rmi nginx           # 删除镜像

# 3. 容器相关(Container)
docker run -d -p 80:80 nginx  # 启动容器(-d后台运行,-p端口映射)
docker ps                   # 查看正在运行的容器
docker ps -a                # 查看所有容器(包括挂掉的)
docker stop <容器ID>        # 停止容器
docker rm <容器ID>          # 删除容器
docker exec -it <容器ID> /bin/bash  # 进入容器内部(非常重要)

三、 踩坑实录 & 排错思路(本期重头戏)

坑位 1:添加 Docker 仓库时报 SSL 错误

报错现象:

Curl error (35): SSL connect error ...

排错思路:

  1. 首先想到是不是网络断了?ping www.baidu.com发现是通的。
  2. 那可能是 HTTPS 出口被拦截(阿里云常见)。
  3. 放弃 Docker 官方源,改用阿里云内网镜像源

解决方案(运维技巧):

不用 https://download.docker.com,改用阿里云自己的源:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

坑位 2:docker run hello-world 超时

报错现象:

Client.Timeout exceeded while awaiting headers

排错思路:

  • Docker 默认去国外的 registry-1.docker.io拉镜像。
  • 国内直连 Docker Hub 就像早高峰挤地铁,根本挤不上去。

解决方案(生产环境必备):配置镜像加速器

这步是必做项,不是可选项!

  1. 去阿里云控制台拿自己的加速器地址。
  2. 修改 Docker 配置文件:
{
  "registry-mirrors": ["https://你的专属地址.mirror.aliyuncs.com"]
}
  1. 重启 Docker 服务:
sudo systemctl restart docker

四、 避坑总结(血泪教训)

  1. 别死磕官方源:在阿里云上,能用 mirrors.aliyun.com 就别用 download.docker.com。
  2. 安全组 ≠ 防火墙:Docker 跑起来了,外网访问不了,90% 是阿里云控制台的安全组没放行端口。
  3. latest 标签慎用:虽然方便,但在生产环境容易因为镜像偷偷更新导致事故。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注