跳到主要内容

Docker 环境搭建

本节所涉及的 Docker 环境搭建与镜像拉取过程可能依赖于访问国外网络资源。请确保开发环境具备稳定的科学上网(代理)能力,否则在执行安装步骤或拉取镜像时可能会出现超时、下载失败等问题,影响后续开发流程。

1. Docker 简介

Docker 是一种轻量级的容器化平台,用于打包、分发和运行应用程序及其依赖项。它基于容器技术,将应用程序及其运行所需的全部环境封装在一个独立、可移植的容器中,从而确保应用在不同环境中的一致性运行。这种方式显著提高了开发、部署与扩展的效率。 Docker 的核心理念是通过镜像(Image)来定义应用程序及其运行环境,并利用容器(Container)将其实际运行起来。容器可以在任何支持 Docker 的操作系统或云平台中无缝运行,具备轻量、高效和隔离性的优势。

  • 容器(Container): Docker 使用容器来封装应用程序及其所有依赖关系,包括代码、运行时、系统工具、系统库等。容器提供了一种轻量级、一致性和可移植性的方式,使应用程序能够在不同环境中运行。
  • 镜像(Image): 镜像是容器的基础,它包含了运行容器所需的所有信息,如文件系统、库、配置等。镜像可以被共享、存储在仓库中,并通过网络传输。
  • 仓库(Repository): 镜像被存储在仓库中,便于集中管理和共享。Docker 支持公共仓库(如 Docker Hub)和私有仓库,用户可以从仓库中拉取所需镜像,也可以将自定义镜像推送到仓库中以供他人使用或部

2. Docker 环境搭建

提示

建议避免使用 get-docker.sh 脚本安装,以免引入多余依赖或配置冲突。若系统中已安装旧版本 Docker(如 docker、docker.io 或 docker-engine),请先卸载后再安装新版,或考虑重新烧录系统以确保环境干净。

  1. 更新 APT 包索引并安装依赖项:
    sudo apt-get update -y
    sudo apt-get install -y ca-certificates curl gnupg lsb-release

    xxx

  2. 创建密钥存放目录并导入 GPG 密钥:
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

    xxx

  3. 将官方 Docker 仓库添加到 APT 源列表:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
    https://download.docker.com/linux/debian \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    xxx

  4. 安装 Docker 引擎及相关组件:
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
  5. 验证 Docker 是否安装成功:
    sudo docker --version

    xxx

  6. 查看 Docker 进程:
    sudo systemctl status docker

    xxx

3. 常用命令

以下是 Docker 的一部分常用命令。要查看完整的命令列表和帮助信息,请运行 docker --help

  1. 镜像相关命令:

    docker pull luckfoxtech/luckfox_pico:1.0 # 从 Docker Hub 下载镜像。
    docker images # 列出本地所有镜像。
    docker rmi luckfoxtech/luckfox_pico:1.0 # 删除本地一个或多个镜像。
    docker search [image] # 在 Docker Hub 上搜索镜像。
  2. 容器相关命令:

    docker ps # 列出当前运行的容器。
    docker ps -a # 列出所有容器,包括已停止的容器。
  3. 容器操作:

    docker start 1758 # 启动一个已停止的容器。
    docker stop 1758 # 停止一个正在运行的容器。
    docker restart 1758 # 重启一个容器。
    docker exec -it 1758 ls # 在运行中的容器中执行命令。
    docker exec -it 1758 bash # 进入一个正在运行的容器。
    docker rm 1758 # 删除一个或多个容器。
    exit # 退出容器。
  4. 运行容器:

    sudo docker run -it --name luckfox --privileged -v /home/ubuntu/luckfox-pico:/home luckfoxtech/luckfox_pico:1.0 /bin/bash
    • -it:运行一个交互式容器。
    • --name:为容器指定名称,便于识别和管理。
    • -v:将主机上的目录或文件挂载到容器内部。上述示例中,将主机上的 /home/ubuntu/luckfox-pico 目录挂载到容器内的 /home 目录。
    sudo docker start -ai luckfox # 第二次进入 Docker 容器环境。
  5. 系统信息:

    docker logs 1758 # 查看容器日志。
    docker inspect 1758 # 查看容器详细信息。
    docker rmi luckfoxtech/luckfox_pico:1.0 # 删除本地一个或多个镜像。
    docker top 1758 # 查看容器中运行的进程。

Docker 容器的 ID 是唯一的,因此在大多数情况下,仅提供其前几位字符即可唯一标识容器。实际使用命令时,请将示例中的容器 ID 替换为你自己的容器 ID 或前缀。