跳到主要内容

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 #查看容器中运行的进程
  6. Docker 容器的ID是唯一的,因此在大多数情况下,仅提供其前几位字符即可唯一标识容器。请在实际使用命令时,将示例中的容器ID替换为你自己的容器ID(或其前缀)。