Docker 服务器安装部署教程:从零基础到容器化实践

快小二编导 技术教程

在云原生时代,Docker 凭借“一次构建、到处运行”的特性,成为开发者和运维人员必备的工具。它通过容器技术打包应用及其依赖,解决了环境不一致的痛点。本文将从环境准备、Docker 安装、镜像与容器操作、Docker Compose 编排四个核心环节,带你完成 Docker 服务器的部署与实践,即使是零基础也能快速上手。

一、环境准备:选择合适的服务器与系统

Docker 对硬件要求不高,但为了稳定运行,建议满足以下基础配置:

  • CPU:1核及以上(生产环境建议2核+)
  • 内存:2GB及以上(避免因内存不足导致容器崩溃)
  • 存储:20GB以上可用磁盘空间(镜像和容器会占用一定空间)
  • 网络:能访问公网(用于拉取官方镜像)

操作系统选择:Docker 对 Linux 支持最好,推荐使用以下发行版(按优先级排序):

  1. Ubuntu 20.04/22.04:官方推荐,包管理工具 apt 易用,社区文档丰富;
  2. CentOS 7/8:企业级常用,稳定性强;
  3. Debian 11+:轻量稳定,适合资源有限的服务器。

注意:Windows Server 或 macOS 也可安装 Docker,但生产环境优先选择 Linux(性能更优、资源占用更低)。

随机图片

二、Docker 安装:两种主流方式(以 Ubuntu/CentOS 为例)

Docker 分为 CE(社区版)EE(企业版),个人和中小企业选择 CE 即可。以下是两种系统的安装步骤:

(一)Ubuntu 系统安装 Docker CE

1. 卸载旧版本(若有)

如果服务器之前装过旧版 Docker,需先卸载:

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

2. 设置软件源(提高安装速度)

Docker 官方源在国内访问较慢,建议替换为阿里云源:

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

3. 安装 Docker CE

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

4. 验证安装

执行以下命令,若输出 Docker 版本信息,则安装成功:

docker --version
# 输出示例:Docker version 24.0.6, build ed223bc

(二)CentOS 系统安装 Docker CE

1. 卸载旧版本

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

2. 设置软件源

同样使用阿里云源加速:

# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加阿里云 Docker 源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3. 安装 Docker CE

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

4. 启动 Docker 并设置开机自启

CentOS 安装后默认不会启动 Docker,需手动开启:

# 启动 Docker 服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

# 验证状态
sudo systemctl status docker
# 输出 "active (running)" 即为正常

(三)配置国内镜像加速(关键优化)

Docker 官方镜像仓库(Docker Hub)在国内访问较慢,需配置国内镜像源(如阿里云、网易云):

1. 编辑 Docker 配置文件

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://你的阿里云镜像加速地址.mirror.aliyuncs.com"]
}
EOF

如何获取阿里云镜像加速地址?
登录阿里云官网 → 进入“容器镜像服务” → 左侧“镜像加速器” → 复制专属加速地址。

2. 重启 Docker 服务

sudo systemctl daemon-reload
sudo systemctl restart docker

3. 验证加速是否生效

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"0

三、Docker 核心操作:镜像与容器实战

Docker 的核心是镜像(Image)容器(Container)

  • 镜像:是容器的“模板”,包含应用程序及其依赖环境(如 Nginx 镜像、MySQL 镜像);
  • 容器:是镜像的“运行实例”,一个镜像可以创建多个容器。

(一)镜像操作:拉取、查看与删除

1. 拉取官方镜像

以 Nginx 为例,拉取最新版本的镜像:

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"1

2. 查看本地镜像

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"2

3. 删除镜像

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"3

(二)容器操作:创建、启动与管理

1. 创建并启动容器

以 Nginx 为例,创建一个对外暴露 80 端口的容器:

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"4

参数说明:

  • -d:后台运行容器(守护进程模式);
  • -p 80:80:端口映射(主机端口:容器端口);
  • --name my-nginx:给容器命名(方便后续操作);
  • nginx:latest:基于该镜像创建容器。

2. 查看运行中的容器

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"5

3. 进入容器内部

若需修改容器内的配置(如 Nginx 配置文件),可进入容器:

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"6

进入后可执行 ls /etc/nginx 查看配置文件,修改后需重启容器生效。

4. 停止与启动容器

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"7

5. 删除容器

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"8

四、Docker Compose:多容器编排工具

当需要同时运行多个容器(如 Nginx + MySQL + 后端服务)时,手动管理每个容器会非常繁琐。Docker Compose 可以通过一个 docker-compose.yml 文件定义多容器服务,实现一键启动、停止。

(一)安装 Docker Compose

以 Linux 为例,下载最新版本(可在 GitHub releases 查看最新版本号):

# 安装依赖包
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加阿里云 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加 Docker 软件源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"9

(二)编写 docker-compose.yml 示例

以“Nginx + 静态网页”为例,创建一个简单的多容器服务:

1. 创建项目目录

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io0

2. 编写 docker-compose.yml

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io1

3. 创建静态网页

docker-demo 目录下创建 html 文件夹,并编写 index.html

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io2

4. 启动服务

docker-demo 目录下执行:

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io3

5. 验证服务

打开浏览器访问 http://服务器IP:8080,若看到“Hello Docker Compose!”则成功。

6. 停止服务

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io4

五、常见问题与解决方案

  1. Docker 命令需要 sudo?
    原因:当前用户未加入 docker 用户组。
    解决:

    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io5
  2. 容器启动后立即退出?
    原因:容器内没有前台运行的进程(Docker 要求容器必须有一个前台进程才能保持运行)。
    解决:确保镜像的启动命令是前台运行(如 Nginx 的 nginx -g 'daemon off;')。

  3. 镜像拉取失败?
    原因:网络问题或镜像源未配置。
    解决:检查网络连接,确认已配置国内镜像加速(参考本文“配置国内镜像加速”部分)。

六、总结

通过本文的步骤,你已完成 Docker 服务器的安装、镜像与容器的基本操作,以及 Docker Compose 的多容器编排。Docker 的核心价值在于“环境一致性”和“轻量化”,后续你可以尝试部署更多应用(如 MySQL、Redis、Node.js 服务),逐步掌握容器化技术。

如果需要深入学习,建议参考 Docker 官方文档(docs.docker.com),或尝试 Docker Swarm、Kubernetes 等容器编排工具,进一步提升运维效率。

0 19763

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码