Ubuntu 24.04 完整Docker安装指南:从零配置到实战命令大全

文章目录

    • [1. 安装 Docker](#1. 安装 Docker)
    • [2. 配置 Docker 镜像加速器](#2. 配置 Docker 镜像加速器)
      • [2.1 配置 Docker 镜像源](#2.1 配置 Docker 镜像源)
      • [2.2 重启 Docker 服务](#2.2 重启 Docker 服务)
    • [3. Docker 常用命令](#3. Docker 常用命令)
      • [3.1 Docker 常用命令速查表](#3.1 Docker 常用命令速查表)
        • [3.1.1 容器管理](#3.1.1 容器管理)
        • [3.1.2 镜像管理](#3.1.2 镜像管理)
        • [3.1.3 网络管理](#3.1.3 网络管理)
        • [3.1.4 数据卷管理](#3.1.4 数据卷管理)
        • [3.1.5 容器资源管理](#3.1.5 容器资源管理)
        • [3.1.6 Docker Compose(容器编排)](#3.1.6 Docker Compose(容器编排))
        • [3.1.7 清理与维护](#3.1.7 清理与维护)
      • [3.2 常用组合命令](#3.2 常用组合命令)
      • [3.3 常见问题](#3.3 常见问题)
        • [3.3.1 如何修改容器配置?](#3.3.1 如何修改容器配置?)
        • [3.3.2 如何查看容器占用的端口?](#3.3.2 如何查看容器占用的端口?)
        • [3.3.3 如何查看 Docker 版本?](#3.3.3 如何查看 Docker 版本?)

1. 安装 Docker

官方安装文档

以下以 Ubuntu24.04 为例:

bash 复制代码
# 添加 Docker 仓库的 GPG 密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加 Docker 仓库到 apt 源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

# 安装 Docker 以及 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证安装
# 可能出现以下提示,需要先配置 Docker 镜像加速器
# Unable to find image 'hello-world:latest' locally
# docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
sudo docker run hello-world

2. 配置 Docker 镜像加速器

2.1 配置 Docker 镜像源

bash 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://mirror.baidubce.com",
        "http://hub-mirror.c.163.com"
    ]
}
EOF

2.2 重启 Docker 服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

3. Docker 常用命令

3.1 Docker 常用命令速查表

3.1.1 容器管理
命令 说明
docker run -it --name my_container image:tag 创建并运行容器(交互式)
docker run -d --name my_container image:tag 后台运行容器
docker start/stop/restart my_container 启动/停止/重启容器
docker exec -it my_container /bin/bash 进入运行中的容器
docker rm my_container 删除容器
docker rm -f my_container 强制删除运行中的容器
docker ps 查看运行中的容器
docker ps -a 查看所有容器(包括已停止的)
docker logs my_container 查看容器日志
docker logs -f my_container 实时查看日志(类似 tail -f
3.1.2 镜像管理
命令 说明
docker pull image:tag 拉取镜像
docker images 查看本地镜像
docker rmi image:tag 删除镜像
docker build -t my_image:tag . 构建镜像(基于当前目录的 Dockerfile
docker save -o my_image.tar image:tag 导出镜像为 .tar 文件
docker load -i my_image.tar .tar 文件导入镜像
3.1.3 网络管理
命令 说明
docker network ls 查看所有网络
docker network create my_network 创建自定义网络
docker network inspect my_network 查看网络详情
docker run --network=my_network ... 指定容器使用的网络
3.1.4 数据卷管理
命令 说明
docker volume ls 查看所有数据卷
docker volume create my_volume 创建数据卷
docker run -v my_volume:/path/in/container ... 挂载数据卷到容器
docker run -v /host/path:/container/path ... 挂载主机目录到容器
3.1.5 容器资源管理
命令 说明
docker stats 查看容器资源占用(CPU/内存/网络)
docker top my_container 查看容器内的进程
docker update --memory 512M my_container 限制容器内存
3.1.6 Docker Compose(容器编排)
命令 说明
docker-compose up -d 启动 docker-compose.yml 定义的服务
docker-compose down 停止并删除所有容器
docker-compose logs -f 查看所有服务的日志
docker-compose ps 查看运行中的服务
3.1.7 清理与维护
命令 说明
docker system df 查看 Docker 磁盘使用情况
docker system prune 清理未使用的容器/镜像/网络
docker system prune -a 彻底清理(包括未使用的镜像)

3.2 常用组合命令

bash 复制代码
# 删除所有停止的容器
docker container prune

# 删除所有未使用的镜像
docker image prune -a

# 查看容器 IP 地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my_container

# 批量停止所有容器
docker stop $(docker ps -aq)

# 批量删除所有容器
docker rm $(docker ps -aq)

3.3 常见问题

3.3.1 如何修改容器配置?
bash 复制代码
# 修改容器配置(如端口映射)
docker update --restart=always my_container
docker update --publish-add 8080:80 my_container
3.3.2 如何查看容器占用的端口?
bash 复制代码
docker port my_container
3.3.3 如何查看 Docker 版本?
bash 复制代码
docker --version
docker info
相关推荐
2401_892070982 天前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
雪可问春风2 天前
docker环境部署
运维·docker·容器
lwx9148522 天前
Linux-Shell算术运算
linux·运维·服务器
somi72 天前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白2 天前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
黄昏晓x2 天前
Linux ---- UDP和TCP
linux·tcp/ip·udp
路溪非溪2 天前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神2 天前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
2401_892070982 天前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
航Hang*2 天前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全