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),请先卸载后再安装新版,或考虑重新烧录系统以确保环境干净。
- 更新 APT 包索引并安装依赖项:
sudo apt-get update -y
sudo apt-get install -y ca-certificates curl gnupg lsb-release
- 创建密钥存放目录并导入 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
- 将官方 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
- 安装 Docker 引擎及相关组件:
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin - 验证 Docker 是否安装成功:
sudo docker --version
- 查看 Docker 进程:
sudo systemctl status docker
3. 常用命令
- 镜像相关命令:
docker pull luckfoxtech/luckfox_pico:1.0 #从 Docker Hub 下载镜像。
docker images #列出本地所有的镜像。
docker rmi luckfoxtech/luckfox_pico:1.0 #删除本地一个或多个镜像。
docker search [image] #在 Docker Hub 上搜索镜像。 - 容器相关命令:
docker ps #列出当前运行的容器。
docker ps -a #列出所有的容器,包括停止的。 - 容器操作:
docker start 1758 #启动一个停止的容器
docker stop 1758 #停止一个运行中的容器
docker restart 1758 #重启一个容器
docker exec -it 1758 ls #在运行中的容器中执行命令
docker exec -it 1758 bash #进入一个已经打开的容器
docker rm 1758 #删除一个或多个容器
exit #退出 - 运行容器:
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环境 - 系统信息:
docker logs 1758 #查看容器的日志
docker inspect 1758 #查看容器的详细信息
docker rmi luckfoxtech/luckfox_pico:1.0 #删除本地一个或多个镜像
docker top 1758 #查看容器中运行的进程
Docker 容器的ID是唯一的,因此在大多数情况下,仅提供其前几位字符即可唯一标识容器。请在实际使用命令时,将示例中的容器ID替换为你自己的容器ID(或其前缀)。