Linux 运维

Linux 系统安装部署 Docker 教程

· Linux 运维
Max AI 专属导读

文章 AI 总结

用更短的路径抓住本文重点

  • Docker通过容器化技术统一开发与生产环境,适用于网站、数据库及微服务部署,避免"在我电脑能运行"的迁移问题。
  • 详细覆盖Ubuntu/Debian与CentOS系安装流程,需先卸载旧版本并通过官方源安装Docker Engine及Compose插件。
  • 国内服务器必须配置镜像加速地址以解决Docker Hub拉取缓慢,同时讲解普通用户加入docker组的权限配置与风险。
  • 提供从hello-world到Nginx部署的验证流程,包含端口映射、防火墙设置及容器日志查看等实操命令。
  • 汇总守护进程连接失败、权限拒绝、镜像拉取超时及端口无法访问等安装后常见故障的排查方法与解决方案。

Docker 是目前最常用的容器化平台之一。通过 Docker,我们可以把应用程序及其运行环境打包成镜像,然后在不同服务器上快速部署,避免“在我电脑上能运行,换台服务器就出问题”的情况。

本文将介绍如何在 Linux 系统中安装 Docker,并完成基础部署、服务管理、镜像加速、常用命令和故障排查。


一、Docker 适合用来做什么?#

Docker 常用于以下场景:

  • 部署网站、博客、论坛、后台管理系统
  • 部署 MySQL、Redis、Nginx、PostgreSQL 等服务
  • 快速搭建测试环境
  • 统一开发环境和生产环境
  • 部署微服务项目
  • 配合 Docker Compose 一键启动多个服务

简单来说,Docker 可以让软件部署变得更简单、更稳定、更容易迁移。


二、安装前准备#

1. 系统要求#

常见 Linux 发行版都可以安装 Docker,例如:

  • Ubuntu
  • Debian
  • CentOS
  • Rocky Linux
  • AlmaLinux
  • Fedora

建议使用较新的 64 位 Linux 系统。

2. 检查系统版本#

执行:

cat /etc/os-release

查看系统名称和版本。

3. 检查系统架构#

执行:

uname -m

常见结果:

  • x86_64:普通 64 位服务器
  • aarch64:ARM 服务器

Docker 官方仓库通常同时支持 x86_64 和 arm64 架构。


三、Ubuntu / Debian 安装 Docker#

下面以 Ubuntu / Debian 系统为例,推荐使用 Docker 官方软件源安装。

1. 卸载旧版本 Docker#

如果之前安装过旧版本,可以先卸载:

sudo apt-get remove -y docker docker-engine docker.io containerd runc

如果提示软件不存在,可以忽略。

2. 更新软件包索引#

sudo apt-get update

3. 安装必要依赖#

sudo apt-get install -y ca-certificates curl gnupg

4. 添加 Docker 官方 GPG 密钥#

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

如果你是 Debian 系统,请把上面地址中的 ubuntu 改成 debian

5. 添加 Docker 官方软件源#

Ubuntu 执行:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Debian 执行:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

6. 再次更新软件包索引#

sudo apt-get update

7. 安装 Docker Engine、Buildx 和 Compose 插件#

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

8. 查看 Docker 版本#

docker --version

查看 Docker Compose 版本:

docker compose version

四、CentOS / Rocky Linux / AlmaLinux 安装 Docker#

CentOS、Rocky Linux、AlmaLinux 等 RHEL 系系统可以使用 yumdnf 安装。

1. 卸载旧版本#

sudo yum remove -y docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine

2. 安装 yum-utils#

sudo yum install -y yum-utils

3. 添加 Docker 官方软件源#

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

Rocky Linux 和 AlmaLinux 通常也可以使用 CentOS 的 Docker 官方源。

4. 安装 Docker#

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果系统使用 dnf,也可以执行:

sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

五、启动并设置 Docker 开机自启#

安装完成后,启动 Docker 服务:

sudo systemctl start docker

设置开机自启:

sudo systemctl enable docker

查看 Docker 服务状态:

sudo systemctl status docker

如果看到 active (running),说明 Docker 正在正常运行。


六、运行 hello-world 测试 Docker#

执行:

sudo docker run --rm hello-world

如果看到类似下面的内容,说明 Docker 安装成功:

Hello from Docker!
This message shows that your installation appears to be working correctly.

七、配置普通用户免 sudo 使用 Docker#

默认情况下,普通用户运行 Docker 可能需要加 sudo。如果想免 sudo,可以把当前用户加入 docker 用户组。

sudo usermod -aG docker $USER

然后退出当前 SSH 连接,重新登录服务器。

验证:

docker ps

如果没有权限报错,说明配置成功。

注意:加入 docker 用户组后,该用户基本等同于拥有较高系统权限,请只给可信用户配置。


八、配置 Docker 镜像加速#

在国内服务器上,拉取 Docker Hub 镜像可能比较慢,可以配置镜像加速。

创建或编辑配置文件:

sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

写入示例配置:

{
  "registry-mirrors": [
    "https://docker.1panel.live",
    "https://docker.m.daocloud.io"
  ]
}

保存后重启 Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

查看配置是否生效:

docker info

在输出中找到 Registry Mirrors,如果能看到配置的地址,说明镜像加速已生效。

提醒:镜像加速地址可能会变动,如果无法拉取镜像,可以更换其他可用镜像源。


九、Docker 常用命令#

1. 查看 Docker 版本#

docker --version
docker compose version

2. 查看正在运行的容器#

docker ps

3. 查看所有容器#

docker ps -a

4. 搜索镜像#

docker search nginx

5. 拉取镜像#

docker pull nginx

6. 启动一个 Nginx 容器#

docker run -d --name nginx-test -p 8080:80 nginx

说明:

  • -d:后台运行
  • --name nginx-test:容器名称
  • -p 8080:80:把服务器 8080 端口映射到容器 80 端口
  • nginx:使用的镜像名称

访问:

http://服务器IP:8080

如果能看到 Nginx 欢迎页面,说明容器运行成功。

7. 停止容器#

docker stop nginx-test

8. 启动已停止的容器#

docker start nginx-test

9. 删除容器#

docker rm nginx-test

如果容器正在运行,需要先停止,或者强制删除:

docker rm -f nginx-test

10. 删除镜像#

docker rmi nginx

11. 查看容器日志#

docker logs nginx-test

实时查看日志:

docker logs -f nginx-test

12. 进入容器内部#

docker exec -it nginx-test bash

如果容器内没有 bash,可以使用 sh:

docker exec -it nginx-test sh

十、Docker Compose 基础使用#

Docker Compose 可以通过一个 compose.yaml 文件管理多个容器。

1. 创建项目目录#

mkdir -p ~/docker-demo
cd ~/docker-demo

2. 创建 compose.yaml#

nano compose.yaml

写入:

services:
  nginx:
    image: nginx:latest
    container_name: demo-nginx
    ports:
      - "8080:80"
    restart: unless-stopped

3. 启动服务#

docker compose up -d

4. 查看服务状态#

docker compose ps

5. 查看日志#

docker compose logs -f

6. 停止并删除服务#

docker compose down

十一、常见问题排查#

1. docker: command not found#

说明 Docker 没有安装成功,或者命令路径未生效。

可以检查:

which docker
docker --version

如果没有输出,建议重新安装 Docker。

2. Cannot connect to the Docker daemon#

常见报错:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock

可能原因是 Docker 服务没有启动。

解决方法:

sudo systemctl start docker
sudo systemctl status docker

3. permission denied while trying to connect to the Docker daemon socket#

这是权限问题。

解决方法一:使用 sudo:

sudo docker ps

解决方法二:把当前用户加入 docker 组:

sudo usermod -aG docker $USER

然后重新登录 SSH。

4. 拉取镜像很慢或失败#

可以配置 Docker 镜像加速,或者更换网络环境。

也可以尝试:

docker pull nginx

如果一直失败,检查服务器 DNS 和网络连通性。

5. 端口无法访问#

如果容器已经启动,但外部无法访问端口,可以检查:

docker ps

确认端口是否正确映射。

再检查服务器防火墙和云服务器安全组是否放行端口,例如 8080。


十二、卸载 Docker#

如果需要卸载 Docker,可以执行:

Ubuntu / Debian:

sudo apt-get remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

CentOS / Rocky Linux / AlmaLinux:

sudo yum remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

删除 Docker 数据目录:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

注意:删除 /var/lib/docker 会清空所有 Docker 镜像、容器和数据,请谨慎操作。


十三、总结#

本文介绍了 Linux 系统安装部署 Docker 的完整流程,包括:

  • 安装 Docker Engine
  • 安装 Docker Compose 插件
  • 启动并设置 Docker 开机自启
  • 运行 hello-world 测试
  • 配置普通用户免 sudo
  • 配置 Docker 镜像加速
  • 使用 Docker 和 Docker Compose 部署 Nginx
  • 常见问题排查

对于日常服务器部署来说,Docker 可以大幅降低环境配置难度。掌握 Docker 之后,可以继续学习 Nginx、MySQL、Redis、Docker Compose、反向代理、HTTPS 证书自动申请等内容,从而搭建更加完整的服务器应用环境。

Linux 系统安装部署 Docker 教程

https://maxs.eu.org/posts/n2ezfgcmb8rb.html
本文作者
马小酷
发布于
更新于
版权协议
CC BY-NC-SA 4.0

转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!

Comments

评论

欢迎留下你的看法,也欢迎补充不同视角。