Docker第4天:Docker实例:安装Ubuntu、CentOS、Nginx学习整理

Docker实例:安装Ubuntu、CentOS、Nginx

前言

Docker Hub提供大量官方基础镜像,无需手动搭建系统、Web环境,一行命令即可快速拉起Linux系统或Web服务容器。

一、前置准备

操作前需确认服务器/本地Docker环境已正常安装,执行校验命令:

bash 复制代码
docker --version

若提示命令不存在,需先完成Docker Engine安装;国内环境建议提前配置镜像加速器,解决镜像拉取超时、速度缓慢问题。

二、通用镜像基础操作命令

1. 检索镜像

docker search可在线查询Docker Hub官方与第三方镜像,筛选STARS收藏、OFFICIAL官方标识:

bash 复制代码
# 检索nginx镜像
docker search nginx

返回字段说明:NAME镜像名、DESCRIPTION描述、STARS收藏量、OFFICIAL是否官方镜像(优先选用)。

2. 拉取镜像

docker pull [镜像名:标签],不指定tag默认拉取latest最新版;指定版本可固定环境,避免自动更新带来兼容性问题。

bash 复制代码
# 拉取最新版
docker pull ubuntu
# 指定18.04长期支持版
docker pull ubuntu:18.04

3. 查看本地缓存镜像

bash 复制代码
docker images

字段释义:

  • REPOSITORY:镜像仓库名称
  • TAG:版本标签
  • IMAGE ID:镜像唯一标识ID
  • CREATED:构建时间
  • SIZE:镜像占用磁盘大小

4. 后台创建并启动容器

核心参数说明:

  • -d:后台守护运行,不占用当前终端
  • -it:交互式终端,用于系统类容器登录操作
  • --name:自定义容器名称,便于后续管理
  • -p 宿主机端口:容器端口:端口映射(Web服务必备)
bash 复制代码
# 系统容器(交互式后台)
docker run -itd --name ubuntu-test ubuntu
# Web服务容器(端口映射)
docker run -d --name nginx-demo -p 8080:80 nginx

5. 进入运行中容器

推荐docker exec,退出不会停止容器:

bash 复制代码
docker exec -it 容器名/容器ID /bin/bash

6. 查看运行容器

bash 复制代码
# 仅展示正在运行容器
docker ps
# 展示所有容器(包含已停止)
docker ps -a

三、Ubuntu系统镜像完整实操

Ubuntu是Debian系主流Linux容器镜像,开发、测试环境使用频率极高。

  1. 查看官方镜像版本
    Docker Hub地址:https://hub.docker.com/_/ubuntu,支持amd64、arm64等多架构,提供18.04、20.04、22.04等LTS稳定标签。
  2. 拉取镜像
bash 复制代码
# 最新版
docker pull ubuntu:latest
# 指定18.04稳定版
docker pull ubuntu:18.04
  1. 启动后台Ubuntu容器
bash 复制代码
docker run -itd --name ubuntu-demo ubuntu:18.04
  1. 进入容器内部操作
bash 复制代码
docker exec -it ubuntu-demo /bin/bash
# 容器内可执行apt更新、安装软件
apt update && apt install curl
  1. 查看容器运行状态
bash 复制代码
docker ps

四、CentOS系统镜像完整实操

CentOS基于RHEL源码编译,线上企业服务器常用发行版,主流镜像版本为centos7。

  1. 官方镜像地址:https://hub.docker.com/_/centos,支持centos7、centos-stream系列标签。
  2. 拉取指定CentOS7镜像
bash 复制代码
docker pull centos:centos7
  1. 创建后台CentOS容器
bash 复制代码
docker run -itd --name centos-demo centos:centos7
  1. 登录容器终端
bash 复制代码
docker exec -it centos-demo /bin/bash
# 容器内yum包管理器操作
yum install net-tools
  1. 校验容器运行:
bash 复制代码
docker ps

五、Nginx Web服务镜像完整实操

Nginx官方镜像开箱即用,无需手动编译、配置环境,仅需端口映射即可外部访问网页服务。

  1. 检索Nginx镜像
bash 复制代码
docker search nginx
  1. 拉取官方Nginx镜像
bash 复制代码
docker pull nginx:latest
  1. 带端口映射启动容器
bash 复制代码
# 将宿主机8080映射容器内部80端口
docker run -d --name nginx-web -p 8080:80 nginx
  1. 查看端口映射关系
bash 复制代码
docker port nginx-web
  1. 访问验证
    服务器公网IP:8080 或本地localhost:8080,打开浏览器可见Nginx默认欢迎页面。
  2. 进入容器修改首页(拓展操作)
bash 复制代码
docker exec -it nginx-web /bin/bash
# 修改默认页面
echo "<h1>Docker部署Nginx测试</h1>" > /usr/share/nginx/html/index.html

六、Ubuntu与CentOS容器核心区别

  1. 包管理器:Ubuntu使用apt,CentOS7使用yum
  2. 系统生态:Ubuntu适配开发环境,CentOS偏向生产稳定服务器;
  3. 镜像体积:Ubuntu镜像压缩包更小,资源占用更低;
  4. 命令差异:系统更新、软件安装指令完全不通用,容器内操作需对应发行版命令。

七、实操常见踩坑点

  1. 拉取镜像缓慢:配置国内镜像加速器,替换Docker官方源;
  2. 浏览器无法访问Nginx:检查服务器安全组/防火墙是否放行映射端口;
  3. docker exec进入失败:容器已停止,执行docker start 容器名重启;
    4 忘记自定义容器名:可通过docker ps复制容器ID进行操作。

八、总结

Docker官方镜像大幅降低环境搭建成本,Ubuntu、CentOS用于快速拉起Linux测试环境,Nginx用于一键部署Web服务。整套流程遵循「搜索镜像→拉取→创建容器→进入/访问服务」标准步骤,掌握文中通用命令后,Redis、MySQL、Java等其余官方镜像均可套用相同操作逻辑,是Docker入门最基础的实操能力。