logo

Linux系统下Docker部署全攻略:从安装到容器管理

作者:起个名字好难2025.09.19 10:59浏览量:0

简介:本文详细介绍在Linux系统上部署Docker的全流程,涵盖环境准备、安装步骤、配置优化及容器管理,帮助开发者快速掌握Docker技术。

如何在Linux系统上部署Docker:完整指南

一、环境准备:选择适合的Linux发行版

在部署Docker前,首先需要确认系统环境是否满足要求。Docker官方推荐使用较新的Linux内核版本(建议4.x及以上),并支持主流发行版如Ubuntu、CentOS、Debian等。对于生产环境,建议选择LTS(长期支持)版本以获得更好的稳定性。

  • Ubuntu/Debian系列:适合开发环境,软件包更新频繁
  • CentOS/RHEL系列:适合企业生产环境,稳定性高
  • Fedora/Arch:适合尝鲜最新技术

以Ubuntu 22.04 LTS为例,其预装内核5.15版本,完全满足Docker运行要求。

二、安装Docker:官方仓库与便捷脚本

方法一:通过官方仓库安装(推荐)

这是最规范的安装方式,可确保获得最新稳定版本:

  1. # 1. 卸载旧版本(如有)
  2. sudo apt-get remove docker docker-engine docker.io containerd runc
  3. # 2. 安装依赖包
  4. sudo apt-get update
  5. sudo apt-get install -y \
  6. apt-transport-https \
  7. ca-certificates \
  8. curl \
  9. gnupg \
  10. lsb-release
  11. # 3. 添加Docker官方GPG密钥
  12. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  13. # 4. 设置稳定版仓库
  14. echo \
  15. "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  16. $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  17. # 5. 安装Docker引擎
  18. sudo apt-get update
  19. sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  20. # 6. 验证安装
  21. sudo docker run hello-world

方法二:使用便捷脚本(快速测试)

对于快速测试环境,可以使用Docker提供的便捷脚本:

  1. curl -fsSL https://get.docker.com | sh

注意:此方法会直接从网络获取安装脚本,生产环境建议使用方法一以确保安全性。

三、配置优化:提升安全与性能

1. 用户组配置

默认情况下,Docker需要root权限运行。为提升安全性,建议将普通用户加入docker组:

  1. sudo usermod -aG docker $USER
  2. newgrp docker # 立即生效

2. 存储驱动选择

Docker支持多种存储驱动,不同驱动适用于不同场景:

  • overlay2:默认推荐,性能优秀
  • aufs:旧版Ubuntu默认,功能稳定
  • devicemapper:CentOS默认,适合企业环境

查看当前驱动:

  1. docker info | grep "Storage Driver"

3. 配置daemon.json

/etc/docker/daemon.json中可配置高级选项:

  1. {
  2. "exec-opts": ["native.cgroupdriver=systemd"],
  3. "log-driver": "json-file",
  4. "log-opts": {
  5. "max-size": "100m"
  6. },
  7. "storage-driver": "overlay2",
  8. "registry-mirrors": ["https://registry.docker-cn.com"] # 国内加速
  9. }

配置后重启服务:

  1. sudo systemctl restart docker

四、基础操作:容器管理实战

1. 运行第一个容器

  1. # 运行Nginx容器
  2. docker run -d --name web -p 80:80 nginx
  3. # 查看运行状态
  4. docker ps
  5. # 访问测试
  6. curl http://localhost

2. 镜像管理

  1. # 拉取镜像
  2. docker pull ubuntu:22.04
  3. # 查看本地镜像
  4. docker images
  5. # 删除镜像
  6. docker rmi ubuntu:22.04

3. 数据持久化

使用卷(Volume)实现数据持久化:

  1. # 创建数据卷
  2. docker volume create myvol
  3. # 运行带卷的容器
  4. docker run -d --name mysql -v myvol:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

五、进阶技巧:提升使用效率

1. 使用Docker Compose

安装Docker Compose:

  1. sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. sudo chmod +x /usr/local/bin/docker-compose

示例docker-compose.yml:

  1. version: '3'
  2. services:
  3. web:
  4. image: nginx
  5. ports:
  6. - "80:80"
  7. db:
  8. image: mysql:5.7
  9. environment:
  10. MYSQL_ROOT_PASSWORD: example

2. 构建自定义镜像

创建Dockerfile:

  1. FROM python:3.9-slim
  2. WORKDIR /app
  3. COPY requirements.txt .
  4. RUN pip install --no-cache-dir -r requirements.txt
  5. COPY . .
  6. CMD ["python", "app.py"]

构建镜像:

  1. docker build -t myapp .

六、常见问题解决方案

1. 权限问题

症状Got permission denied while trying to connect to the Docker daemon socket

解决

  1. sudo chmod 666 /var/run/docker.sock # 临时方案
  2. # 或按前文将用户加入docker组(推荐)

2. 镜像拉取慢

解决方案

配置国内镜像源(如阿里云、腾讯云):

  1. {
  2. "registry-mirrors": [
  3. "https://<your-id>.mirror.aliyuncs.com",
  4. "https://registry.docker-cn.com"
  5. ]
  6. }

3. 端口冲突

解决方案

修改容器端口映射:

  1. docker run -d -p 8080:80 nginx # 将宿主机的8080映射到容器的80

七、最佳实践建议

  1. 镜像选择:优先使用官方镜像,减少安全风险
  2. 资源限制:为生产环境容器设置CPU/内存限制
    1. docker run -d --memory="512m" --cpus="1.5" nginx
  3. 日志管理:配置日志轮转,避免磁盘占满
  4. 定期更新:保持Docker引擎和镜像为最新版本
  5. 备份策略:定期备份重要数据卷

八、卸载Docker

如需卸载:

  1. # 卸载Docker引擎
  2. sudo apt-get purge docker-ce docker-ce-cli containerd.io
  3. # 删除残留文件
  4. sudo rm -rf /var/lib/docker
  5. sudo rm -rf /var/lib/containerd

结语

通过本文的详细指导,您已经掌握了在Linux系统上部署Docker的完整流程,从环境准备、安装配置到高级管理技巧。Docker作为容器化技术的标杆,能够显著提升开发效率和系统资源利用率。建议在实际应用中结合CI/CD流程,充分发挥Docker在微服务架构中的优势。

下一步建议

  1. 深入学习Dockerfile最佳实践
  2. 探索Kubernetes容器编排
  3. 实践多阶段构建优化镜像大小
  4. 了解Docker安全加固技术

通过持续实践和学习,您将能够构建出高效、安全的容器化应用环境。

相关文章推荐

发表评论