一、为什么要学 Docker
Docker 的核心逻辑是'一次构建,到处运行',能解决环境配置不一致、依赖冲突等问题。
- 环境统一:开发、测试、生产环境完全一致;
- 轻量级:容器比虚拟机占用资源少,启动快(秒级启动);
- 隔离性:每个容器独立运行,互不干扰;
- 易部署:无需手动配置复杂依赖,拉取镜像即可启动服务。
Docker 是一种容器化技术,实现“一次构建,到处运行”。涵盖 Windows、macOS 及 Linux 系统的 Docker 安装步骤,包括 Docker Desktop 与 Docker Engine 的配置。核心内容涉及镜像与容器的概念,以及常用命令操作,如搜索、拉取、查看、删除镜像,创建、运行、停止、删除容器,端口映射及日志查看等。通过基础操作汇总表格,帮助开发者快速掌握环境配置与部署流程,解决依赖冲突与环境不一致问题。
Docker 的核心逻辑是'一次构建,到处运行',能解决环境配置不一致、依赖冲突等问题。
Docker 分为「Docker Engine」(核心运行环境)和「Docker Desktop」(图形化界面,可选),新手建议安装 Docker Desktop。
Win+R,输入 control 打开控制面板 → 程序 → 启用或关闭 Windows 功能;wsl --install
docker --version
docker run hello-world
docker --version
docker run hello-world
Linux 系统推荐直接安装 Docker Engine(无图形化界面,纯命令行)。以下是最常用的 Ubuntu/Debian 系列安装步骤,Jetson Orin/Nano 等 ARM 架构同样适用。提供两种方法:一键脚本安装(自动化)和手动分步安装(适合学习)。
步骤 1:安装 curl 工具
# 更新软件包索引(可选,但建议执行)
sudo apt update
# 安装 curl
sudo apt install curl -y
步骤 2:下载 Docker 安装脚本
curl -fsSL https://get.docker.com -o install-docker.sh
参数说明:
-f:失败时不输出错误信息-s:静默模式,不显示进度条-S:如果失败,显示错误信息-L:跟随重定向步骤 3:执行 Docker 安装脚本
# 运行安装脚本(需要 root 权限)
sudo sh install-docker.sh
此脚本会自动卸载旧版本、设置官方源、安装 Docker Engine、Containerd、Docker Compose。
步骤 4:验证 Docker 是否安装成功
# 查看 Docker 版本
docker --version
# 启动 Docker 服务(如果未自动启动)
sudo systemctl start docker
# 设置 Docker 开机自启
sudo systemctl enable docker
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=arm64 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
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
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
docker --version
docker run hello-world
Docker 的核心概念:镜像(Image) 是容器的'模板',容器(Container) 是镜像的'运行实例'。
命令格式:docker search 镜像名
docker search ubuntu
docker search nginx
优先选官方镜像(OFFICIAL 列标为 OK)。
命令格式:docker pull 镜像名:标签
docker pull ubuntu:22.04
docker pull nginx
docker pull python:3.9
docker images
docker image ls
字段说明:REPOSITORY(名称)、TAG(版本)、IMAGE ID(唯一 ID)、CREATED(创建时间)、SIZE(大小)。
注意:删除镜像前,需先删除依赖该镜像的所有容器。
命令格式:docker rmi 镜像名:标签 或 docker rmi 镜像ID
docker rmi ubuntu:22.04
docker rmi 14c2d7905e84
docker rmi -f nginx
命令格式:docker run [参数] 镜像名 [命令]
常用示例:
# 交互式运行 Ubuntu 容器
docker run -it --name my-ubuntu ubuntu:22.04 /bin/bash
# 后台运行 Nginx 容器(端口映射 8080->80)
docker run -d --name my-nginx -p 8080:80 nginx
# 临时运行 Python 容器(停止后自动删除)
docker run --rm -it python:3.9 python --version
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器
docker ps -q # 只查看运行中容器的 ID
docker stop 容器名
docker stop 容器 ID
docker stop $(docker ps -q)
docker start 容器名/容器 ID
docker start my-ubuntu
docker exec -it 容器名/容器 ID /bin/bash
docker exec -it my-nginx /bin/bash
docker logs 容器名/容器 ID
docker logs -f my-nginx
注意:删除容器前,需先停止容器。
docker rm 容器名/容器 ID
docker rm -f 容器名/容器 ID
docker rm -f $(docker ps -a -q)
| 操作类型 | 命令 | 说明 | 示例 |
|---|---|---|---|
| 镜像搜索 | docker search 镜像名 | 从 Docker Hub 搜索镜像 | docker search nginx |
| 镜像下载 | docker pull 镜像名:标签 | 拉取镜像(标签默认 latest) | docker pull ubuntu:22.04 |
| 镜像查看 | docker images / docker image ls | 查看本地所有镜像 | docker images |
| 镜像删除 | docker rmi 镜像名:标签/ID | 删除本地镜像(需先删依赖容器) | docker rmi nginx |
| 容器创建运行 | docker run [参数] 镜像名 | 创建并运行容器 | docker run -d --name my-nginx -p 8080:80 nginx |
| 容器查看 | docker ps | 查看正在运行的容器 | docker ps |
| 容器查看(所有) | docker ps -a | 查看所有容器 | docker ps -a |
| 容器停止 | docker stop 容器名/ID | 停止运行中的容器 | docker stop my-nginx |
| 容器启动 | docker start 容器名/ID | 启动已停止的容器 | docker start my-nginx |
| 进入容器 | docker exec -it 容器名/ID /bin/bash | 进入运行中容器的终端 | docker exec -it my-nginx /bin/bash |
| 容器日志 | docker logs 容器名/ID | 查看容器日志 | docker logs -f my-nginx |
| 容器删除 | docker rm 容器名/ID | 删除已停止的容器 | docker rm my-nginx |
ubuntu(熟悉 Linux 命令)、nginx(测试端口映射)、python(运行简单脚本)。docker commit 生成新镜像)。docker 命令 --help 查看,例如 docker run --help。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online