Linux 运维
Linux 系统安装部署 Docker 教程
文章 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 系系统可以使用 yum 或 dnf 安装。
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
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!