亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用docker搭建嵌入式Linux開發(fā)環(huán)境

 更新時(shí)間:2025年08月29日 10:29:47   作者:Cohen0415(全網(wǎng)同名)  
本文主要介紹了使用docker搭建嵌入式Linux開發(fā)環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、前言

在日常開發(fā)全志、rk等不同平臺(tái)時(shí),大多數(shù)時(shí)候只有一個(gè)編譯主機(jī),但不同sdk所需要的編譯環(huán)境可能不同。所以本文將記錄使用docker為每個(gè)平臺(tái)創(chuàng)建獨(dú)立的開發(fā)環(huán)境。

2、安裝docker

# 1.卸載舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 2.安裝 Docker 依賴
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

# 3.添加 Docker 官方 GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 4.添加 Docker 官方 apt 源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5.安裝 Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 6.檢查是否安裝成功
docker --version

3、編寫容器管理腳本

找AI寫一個(gè)腳本,支持創(chuàng)建容器,進(jìn)入容器,刪除容器:

#!/bin/bash
# 文件名: sdk_docker.sh
# 用法:
#   創(chuàng)建并啟動(dòng)環(huán)境: ./sdk_docker.sh create <chip> <sdk_path>
#   進(jìn)入環(huán)境:         ./sdk_docker.sh enter <chip>
#   刪除環(huán)境:         ./sdk_docker.sh remove <chip>

ACTION=$1
CHIP=$2
SDK_PATH=$3
IMAGE="ubuntu:22.04"        # 可自行修改,例如某某sdk推薦的ubuntu版本為20.04
CONTAINER_NAME="sdk_${CHIP}_env"

if [[ -z "$ACTION" || -z "$CHIP" ]]; then
    echo "Usage:"
    echo "  $0 create <chip> <sdk_path>"
    echo "  $0 enter <chip>"
    echo "  $0 remove <chip>"
    exit 1
fi

case "$ACTION" in
    create)
        if [[ -z "$SDK_PATH" ]]; then
            echo "Error: SDK path must be provided for create."
            exit 1
        fi

        # 檢查鏡像是否存在
        if ! docker image inspect $IMAGE >/dev/null 2>&1; then
            echo "Image $IMAGE not found locally. Pulling..."
            docker pull $IMAGE
        fi

        # 判斷容器是否已存在
        if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
            echo "Container $CONTAINER_NAME already exists. Starting it..."
            docker start -ai $CONTAINER_NAME
        else
            echo "Creating new container $CONTAINER_NAME..."
            # 容器內(nèi)掛載路徑與宿主機(jī)一致
            docker run -it --name $CONTAINER_NAME -v $SDK_PATH:$SDK_PATH $IMAGE /bin/bash
        fi
        ;;
    enter)
        # 進(jìn)入已有容器
        if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
            # 判斷容器是否在運(yùn)行
            if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
                docker exec -it $CONTAINER_NAME /bin/bash
            else
                echo "Starting container $CONTAINER_NAME..."
                docker start -ai $CONTAINER_NAME
            fi
        else
            echo "Container $CONTAINER_NAME does not exist. Create it first."
            exit 1
        fi
        ;;
    remove)
        # 刪除容器
        if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
            docker rm -f $CONTAINER_NAME
            echo "Container $CONTAINER_NAME removed."
        else
            echo "Container $CONTAINER_NAME does not exist."
        fi
        ;;
    *)
        echo "Unknown action: $ACTION"
        exit 1
        ;;
esac

4、創(chuàng)建容器

  1. 例如現(xiàn)在要開發(fā)t527,執(zhí)行如下腳本為t527創(chuàng)建一個(gè)獨(dú)立的容器:
# ./sdk_docker.sh create <chip> <sdk_path>
# <chip> : 芯片名稱,用于構(gòu)建容器名稱
# <sdk_path> : sdk在宿主機(jī)的絕對(duì)路徑
sudo ./sdk_docker.sh create t527 /mnt/allwinner/t527

創(chuàng)建成功后會(huì)自動(dòng)進(jìn)入容器,容器中的sdk路徑和宿主機(jī)的一致。ctrl+d可以退出容器:

  1. 重新進(jìn)入容器:
# ./sdk_docker.sh enter <chip>
sudo ./sdk_docker.sh enter t527
  1. 刪除容器
# ./sdk_docker.sh remove <chip>
sudo ./sdk_docker.sh remove t527

之后就可以在獨(dú)立的容器里安裝相關(guān)的編譯環(huán)境。各個(gè)平臺(tái)之間互不干擾。

到此這篇關(guān)于使用docker搭建嵌入式Linux開發(fā)環(huán)境的文章就介紹到這了,更多相關(guān)docker搭建嵌入式Linux內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例

    基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例

    這篇文章主要介紹了基于Dockerfile創(chuàng)建zabbix監(jiān)控體系代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 基于docker-compose構(gòu)建Mongodb副本集的示例詳解

    基于docker-compose構(gòu)建Mongodb副本集的示例詳解

    副本集是?MongoDB?高可用性和數(shù)據(jù)安全性策略的基礎(chǔ),適用于對(duì)數(shù)據(jù)安全性和服務(wù)可用性有較高要求的場(chǎng)景,本文給大家介紹了如何基于docker-compose構(gòu)建Mongodb副本集,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 使用Docker部署Python Flask應(yīng)用的完整教程

    使用Docker部署Python Flask應(yīng)用的完整教程

    Docker是一種開源的容器化平臺(tái),可以將應(yīng)用程序及其依賴項(xiàng)打包成一個(gè)獨(dú)立的容器,實(shí)現(xiàn)快速部署和跨平臺(tái)運(yùn)行,本文將詳細(xì)介紹如何使用Docker來(lái)部署Python Flask應(yīng)用程序,幫助開發(fā)者更高效地構(gòu)建和部署應(yīng)用,需要的朋友可以參考下
    2024-06-06
  • windows docker環(huán)境設(shè)置注意事項(xiàng)

    windows docker環(huán)境設(shè)置注意事項(xiàng)

    這篇文章主要介紹了windows docker環(huán)境設(shè)置注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • CentOS7虛擬機(jī)安裝并配置docker套件

    CentOS7虛擬機(jī)安裝并配置docker套件

    這篇文章主要介紹了CentOS7虛擬機(jī)安裝并配置docker套件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Docker沒(méi)有啟動(dòng)環(huán)境變量的問(wèn)題解決

    Docker沒(méi)有啟動(dòng)環(huán)境變量的問(wèn)題解決

    在使用Docker容器時(shí),有時(shí)候我們會(huì)遇到一個(gè)問(wèn)題,就是在容器中沒(méi)有啟動(dòng)環(huán)境變量,本文主要介紹了Docker沒(méi)有啟動(dòng)環(huán)境變量的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Docker啟動(dòng)安裝nacos的實(shí)現(xiàn)示例

    Docker啟動(dòng)安裝nacos的實(shí)現(xiàn)示例

    本文主要介紹了Docker啟動(dòng)安裝nacos的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 5分鐘教你實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式

    5分鐘教你實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式

    本文主要介紹了5分鐘實(shí)現(xiàn)用docker搭建Redis集群模式和哨兵模式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Docker中啟動(dòng)Nacos的實(shí)現(xiàn)示例

    Docker中啟動(dòng)Nacos的實(shí)現(xiàn)示例

    本文主要介紹了Docker中啟動(dòng)Nacos的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 如何將Docker的構(gòu)建時(shí)間減少40%(推薦)

    如何將Docker的構(gòu)建時(shí)間減少40%(推薦)

    這篇文章主要介紹了如何將Docker的構(gòu)建時(shí)間減少40%,本文描述了我們?cè)趦?yōu)化CI管道后獲得的一些新見(jiàn)解,需要的朋友可以參考下
    2023-11-11

最新評(píng)論