1、ubuntu 下载 docker 步骤
在 Ubuntu 系统中安装 Docker 是云原生实操的基础,以下是官方推荐的标准步骤,适配 Ubuntu 18.04/20.04/22.04 版本,全程使用国内源加速,避免下载慢的问题:
一、前置准备:卸载旧版本(避免冲突)
如果之前装过 Docker 旧版本,先执行卸载:
bash
sudo apt-get remove docker docker-engine docker.io containerd runc
二、步骤1:安装依赖包
bash
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
三、步骤2:添加 Docker 官方 GPG 密钥
bash
# 新建密钥存储目录
sudo mkdir -p /etc/apt/trusted.gpg.d
# 下载并导入密钥(国内阿里云镜像加速)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
四、步骤3:添加 Docker 软件源(阿里云源,速度最快)
bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/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
五、步骤4:安装 Docker 引擎
bash
# 更新软件包索引
sudo apt-get update
# 安装最新版 Docker CE(社区版)、Containerd
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
六、步骤5:验证安装是否成功
bash
# 查看 Docker 版本
docker --version
# 运行测试容器(hello-world),验证 Docker 可正常使用
sudo docker run hello-world
如果输出 Hello from Docker! 相关内容,说明安装成功。
七、可选:配置免 sudo 操作 Docker(推荐)
默认执行 docker 命令需要 sudo,配置后可直接执行:
bash
# 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER
# 刷新用户组(无需重启,立即生效)
newgrp docker
# 验证:无需 sudo 运行测试容器
docker run hello-world
八、常见问题解决
- 安装时报"依赖不足" :
执行sudo apt-get -f install自动修复依赖,再重新安装 Docker。 - 下载速度慢 :
确认使用的是阿里云源(步骤3),而非官方源;若仍慢,检查 Ubuntu 系统的网络代理。 - 启动 Docker 服务失败 :
执行sudo systemctl start docker手动启动,再用sudo systemctl status docker查看报错信息。
总结
- Ubuntu 安装 Docker 核心步骤:卸载旧版本 → 装依赖 → 加阿里云源 → 安装 Docker → 验证;
- 关键优化:用阿里云镜像源替代官方源,解决下载慢问题;
- 便捷配置:加入 docker 用户组,避免每次执行命令加 sudo。
安装完成后,你就可以用 Docker 部署 Nacos、Seata、Redis 等中间件,搭建微服务实操环境了。
2、中间遇到报错
admin1@ubuntu64:~$ sudo docker run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
这个报错的核心原因是:Docker 守护进程(daemon)没有启动,所以客户端无法连接。
解决步骤(按顺序执行)
1. 启动 Docker 服务
bash
sudo systemctl start docker
2. 验证 Docker 状态
bash
sudo systemctl status docker
如果看到 active (running) 绿色状态,说明启动成功。
3. 再次运行 hello-world 测试
bash
sudo docker run hello-world
如果输出 Hello from Docker!,就代表正常运行了 ✅
可选:设置开机自启(推荐)
避免每次重启后都要手动启动 Docker:
bash
sudo systemctl enable docker
额外:配置免 sudo 执行(可选)
之后就不用每次都加 sudo 了:
bash
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
# 刷新用户组(立即生效)
newgrp docker
# 测试(无需 sudo)
docker run hello-world
排查:如果启动失败
如果 start docker 报错,查看日志定位问题:
bash
journalctl -u docker.service
常见原因:
- 磁盘空间不足
- 之前的 Docker 残留文件冲突
- 系统内核版本太老
要不要我帮你把完整的一键修复命令整理出来,你直接复制粘贴就能解决?
3、如何创建一个输出hello word 的镜像
创建输出 hello world 的 Docker 镜像非常简单,核心是通过 Dockerfile 定义镜像内容,再构建+运行。下面我给你完整步骤,从写 Dockerfile 到构建、运行、验证,一步到位。
一、核心思路
我们用最轻量化的 alpine 基础镜像(仅几MB),通过 echo 命令输出 hello world,最终构建成自定义镜像。
二、具体步骤(Ubuntu 环境下操作)
步骤1:创建工作目录(避免文件混乱)
bash
# 创建目录并进入
mkdir -p ~/docker-demo/hello-world
cd ~/docker-demo/hello-world
步骤2:编写 Dockerfile(镜像的"配方")
创建名为 Dockerfile 的文件(无后缀):
bash
vim Dockerfile
粘贴以下内容(注释已解释每一行作用):
dockerfile
# 基础镜像:用alpine(轻量Linux,仅5MB左右)
FROM alpine:latest
# 容器启动时执行的命令:输出hello world
CMD ["echo", "hello world"]
保存退出(vim 中按 ESC → 输入 :wq → 回车)。
步骤3:构建自定义镜像
执行 docker build 命令,给镜像命名(比如 my-hello-world),标签设为 v1:
bash
sudo docker build -t my-hello-world:v1 .
-t:给镜像打标签(格式名称:版本);.:指定 Dockerfile 所在目录(当前目录)。
构建成功的输出示例:
Sending build context to Docker daemon 2.048kB
Step 1/2 : FROM alpine:latest
latest: Pulling from library/alpine
719385e32844: Pull complete
Digest: sha256:02bb6f428431fbc2809c5d1b41eab5a68350194fb508869a33cb1af4444c9b11
Status: Downloaded newer image for alpine:latest
---> 9c6f07244728
Step 2/2 : CMD ["echo", "hello world"]
---> Running in 8f9a78a0e987
Removing intermediate container 8f9a78a0e987
---> 5f8f9547d72a
Successfully built 5f8f9547d72a
Successfully tagged my-hello-world:v1
步骤4:运行自定义镜像
bash
sudo docker run my-hello-world:v1
预期输出:
hello world
看到这个输出,说明镜像创建+运行完全成功!
三、进阶:验证镜像&容器(可选)
1. 查看本地镜像
bash
sudo docker images
能看到 my-hello-world:v1 这个镜像,说明构建成功。
2. 查看运行过的容器
bash
sudo docker ps -a
能看到刚才运行的容器(状态为 Exited,因为 echo 命令执行完就结束了)。
四、扩展:用不同方式输出(可选)
如果想通过脚本/其他语言输出,只需修改 Dockerfile:
示例1:用 shell 脚本输出
dockerfile
FROM alpine:latest
# 创建脚本文件
RUN echo 'echo "hello world from script"' > /hello.sh && chmod +x /hello.sh
# 启动执行脚本
CMD ["/hello.sh"]
示例2:用 Python 输出(需安装Python)
dockerfile
FROM alpine:latest
# 安装Python
RUN apk add --no-cache python3
# 启动执行Python命令
CMD ["python3", "-c", "print('hello world from python')"]
修改后重新构建、运行即可。
总结
- 创建自定义镜像核心步骤:写 Dockerfile(定义基础镜像+启动命令)→
docker build构建 →docker run运行; - 本次镜像的核心逻辑:基于轻量 alpine 镜像,通过
CMD指令执行echo hello world; - 关键参数:
-t给镜像打标签,.指定 Dockerfile 目录。
这个过程是 Docker 镜像制作的基础,后续你可以用同样的思路制作微服务镜像(比如打包 Spring Boot 应用)。