linux 安装docker(建议收藏)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

截止目前, 星球 内专栏累计输出 90w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 3100+ 小伙伴加入学习 ,欢迎点击围观

前言

在云计算和容器化技术蓬勃发展的今天,Docker 已经成为开发和运维领域不可或缺的工具。它简化了软件的打包、分发和运行流程,让开发者能够专注于代码本身,而非环境配置的琐碎细节。对于编程初学者和中级开发者而言,掌握 Docker 的安装与基础操作是迈向现代化开发实践的重要一步。本文将从零开始,详细讲解如何在 Linux 系统上安装 Docker,并通过实际案例帮助读者快速上手。


一、Docker 的核心概念与价值

1.1 什么是 Docker?

Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。这些容器可以在任何支持 Linux 的环境中运行,确保“一次构建,到处运行”。

形象比喻
可以将 Docker 比作“集装箱”技术。传统软件开发如同将货物随意堆放在不同尺寸的木箱中,运输时需要重新调整空间。而 Docker 容器就像标准集装箱,无论货物类型如何,都能被统一装载、运输和部署。

1.2 Docker 的核心组件

  • 镜像(Image):容器的模板,包含应用程序及其依赖。
  • 容器(Container):由镜像运行生成的实例,可启动、停止或删除。
  • 仓库(Registry):存储和分发镜像的中心,例如 Docker Hub。

1.3 安装 Docker 的必要性

  • 环境一致性:避免“在我机器上能跑”的尴尬问题。
  • 资源效率:容器共享宿主机内核,比虚拟机更轻量。
  • 快速部署:通过预构建的镜像快速启动服务。

二、安装前的系统准备

2.1 支持的 Linux 发行版

Docker 官方支持主流 Linux 发行版,包括:

  • Ubuntu LTS
  • CentOS/RHEL 7+
  • Debian
  • Fedora

2.2 系统要求

  • 64 位架构(x86_64 或 AMD64)
  • 内核版本 3.10+(多数现代 Linux 系统已满足)

2.3 更新系统包

安装前,建议更新系统包以确保兼容性:

sudo apt-get update && sudo apt-get upgrade -y  # Ubuntu/Debian  
sudo yum update -y                              # CentOS/RHEL  

三、通过官方仓库安装 Docker

3.1 添加 Docker 官方仓库

Docker 的安装包托管在官方仓库中,需先将其添加到系统源列表:

Ubuntu/Debian 系统

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common  

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -  

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"  

CentOS/RHEL 系统

sudo yum install -y yum-utils  

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo  

3.2 安装 Docker Engine

安装 Docker 的核心组件:

Ubuntu/Debian 系统

sudo apt-get update  
sudo apt-get install docker-ce docker-ce-cli containerd.io  

CentOS/RHEL 系统

sudo yum install -y docker-ce docker-ce-cli containerd.io  

3.3 启动 Docker 服务

安装完成后,启动 Docker 服务并设置开机自启:

sudo systemctl start docker  
sudo systemctl enable docker  

四、验证 Docker 安装

4.1 运行第一个容器

执行以下命令运行官方的 hello-world 镜像:

sudo docker run hello-world  

如果输出包含“Hello from Docker!”,则说明安装成功。

4.2 查看 Docker 版本

docker --version  
docker version  

前者显示客户端版本,后者显示客户端和服务器的详细信息。

4.3 常见问题排查

  • 权限问题:若提示“permission denied”,可将当前用户添加到 docker 组:
    sudo usermod -aG docker $USER  
    # 重启终端或执行 newgrp docker 后再测试  
    
  • 镜像拉取失败:国内用户可切换阿里云镜像加速器(见后续进阶章节)。

五、Docker 的基础操作实践

5.1 拉取镜像

从 Docker Hub 拉取 Nginx 镜像:

docker pull nginx  

5.2 运行容器

以端口映射的方式启动 Nginx 容器:

docker run -d -p 80:80 --name my-nginx nginx  

参数说明:

  • -d:后台运行
  • -p 80:80:将容器的 80 端口映射到主机的 80 端口
  • --name:指定容器名称

5.3 查看运行中的容器

docker ps  

输出示例:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                    NAMES  
abc123...      nginx     "nginx -g 'daemon of…"   10 seconds ago   Up 5 seconds    0.0.0.0:80->80/tcp       my-nginx  

5.4 停止和删除容器

docker stop my-nginx      # 停止容器  
docker rm my-nginx        # 删除容器  

六、进阶配置与优化

6.1 配置 Docker 镜像加速

国内用户可通过阿里云镜像加速器提升下载速度:

  1. 注册阿里云账号并获取加速器地址:
    https://<你的镜像加速器>.mirror.aliyuncs.com  
    
  2. 编辑 /etc/docker/daemon.json 文件,添加:
    {  
      "registry-mirrors": ["https://<你的镜像加速器>.mirror.aliyuncs.com"]  
    }  
    
  3. 重启 Docker 服务:
    sudo systemctl restart docker  
    

6.2 管理 Docker 镜像

  • 列出所有镜像:
    docker images  
    
  • 删除镜像:
    docker rmi <镜像ID>  
    

6.3 使用 Docker Compose

Docker Compose 是管理多容器应用的工具。例如,创建 docker-compose.yml 文件:

version: '3'  
services:  
  web:  
    image: nginx  
    ports:  
      - "80:80"  
  redis:  
    image: redis  

运行命令:

docker-compose up -d  

七、常见场景与最佳实践

7.1 开发环境隔离

通过容器隔离不同版本的开发工具,例如:

docker run -it --name dev-node node:18 bash  

7.2 生产环境部署

结合 Dockerfile 定制镜像,例如:

FROM nginx:latest  
COPY ./nginx.conf /etc/nginx/nginx.conf  
EXPOSE 80  

构建并运行:

docker build -t my-nginx .  
docker run -d -p 80:80 my-nginx  

八、结论

通过本文,读者已掌握了在 Linux 系统上安装 Docker 的完整流程,并通过实际案例了解了其核心操作。Docker 的容器化技术不仅简化了开发与部署,还为团队协作和持续集成提供了强大支持。建议读者从简单项目入手,逐步探索 Docker 的高级功能,如网络配置、卷管理及与 Kubernetes 的集成。掌握 Docker 将成为你迈向 DevOps 和云原生领域的重要基石。


附录:Docker 常用命令速查表
(与前文空一行)
| 命令 | 描述 |
|-------------------------------|-------------------------------|
| docker pull <镜像名> | 拉取镜像 |
| docker run <参数> <镜像> | 运行容器 |
| docker ps | 查看运行中的容器 |
| docker stop <容器ID> | 停止容器 |
| docker images | 列出本地镜像 |
| docker rmi <镜像ID> | 删除镜像 |
| docker exec -it <容器ID> bash| 进入容器终端 |

最新发布