首页
/ Ubuntu 20.04 系统 Docker CE 安装与配置指南

Ubuntu 20.04 系统 Docker CE 安装与配置指南

2025-07-08 08:26:49作者:何举烈Damon

前言

在现代云计算和开发环境中,Docker 已成为容器化技术的标准解决方案。本文将详细介绍如何在 Ubuntu 20.04 系统上完整安装和配置 Docker CE(社区版),包括 docker-compose、Portainer 管理界面以及与 UFW 防火墙的集成配置。

系统要求

  • Ubuntu 20.04 操作系统(其他版本可能也适用)
  • 具有 root 或 sudo 权限的用户
  • 稳定的网络连接

准备工作

在开始安装前,我们需要更新系统包索引并安装必要的依赖工具:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

这些工具将帮助我们安全地添加 Docker 的官方软件源。

Docker CE 安装步骤

1. 添加 Docker 官方 GPG 密钥

为确保软件包的真实性,我们需要添加 Docker 的 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2. 设置 Docker 稳定版仓库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新软件包索引:

sudo apt-get update

3. 安装 Docker 引擎

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

4. 验证安装

运行测试容器验证 Docker 是否正常工作:

sudo docker run --rm hello-world

如果看到欢迎信息,说明 Docker 已成功安装。

UFW 防火墙配置

Docker 默认会修改 iptables 规则,可能绕过 UFW 防火墙设置。为确保安全,我们需要进行特殊配置。

1. 检查 UFW 状态

sudo ufw status

如果 UFW 未启用,建议先启用并确保 SSH 端口开放:

sudo ufw allow ssh
sudo ufw enable

2. 修改 UFW 配置

编辑 /etc/ufw/after.rules 文件,在末尾添加以下规则:

# BEGIN UFW AND DOCKER
[...完整规则内容见原文...]
# END UFW AND DOCKER

保存后重启服务器使配置生效:

sudo reboot

3. 开放容器端口

要为容器开放特定端口(如80):

ufw route allow proto tcp from any to any port 80

非 root 用户使用 Docker

为方便日常使用,可以将用户加入 docker 组:

sudo groupadd docker
sudo usermod -aG docker $USER

需要注销并重新登录使更改生效。

安装 docker-compose

docker-compose 是管理多容器应用的工具:

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

安装 Portainer 管理界面

Portainer 提供了 Docker 的图形化管理界面:

docker volume create portainer_data
docker run -d -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest

开放端口:

sudo ufw-docker allow portainer 9443

安装完成后,可通过 https://服务器IP:9443 访问 Portainer 界面。

安全注意事项

  1. 将用户加入 docker 组等同于授予该用户 root 权限
  2. 生产环境建议配置 TLS 加密访问 Docker 守护进程
  3. 定期更新 Docker 及相关组件以获取安全补丁

结语

通过本指南,您已成功在 Ubuntu 20.04 上搭建了完整的 Docker 环境,包括基本的容器管理工具和可视化界面。这为后续部署各种容器化应用奠定了坚实基础。建议进一步学习 Docker 网络、存储卷等高级特性,以充分发挥容器技术的优势。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
860
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
596
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K