OpenHarmony docker环境搭建

OpenHarmony docker环境搭建

要求一台安装ubuntu的虚拟机,vscode软件

安装docker

在 Ubuntu 上安装 Docker 非常直接。我们将会启用 Docker 软件源,导入 GPG key,并且安装软件包。

首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

使用下面的 curl 导入源仓库的 GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到你的系统:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

现在,Docker 软件源被启用了,你可以安装软件源中任何可用的 Docker 版本。

01.想要安装 Docker 最新版本,运行下面的命令。如果你想安装指定版本,跳过这个步骤,并且跳到下一步。

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

02.想要安装指定版本,首先列出 Docker 软件源中所有可用的版本:

sudo apt update
apt list -a docker-ce

可用的 Docker 版本将会在第二列显示。

docker-ce/focal 5:19.03.93-0ubuntu-focal amd64
通过在软件包名后面添加版本=<VERSION>来安装指定版本:

sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
一旦安装完成,Docker 服务将会自动启动。你可以输入下面的命令,验证它:
sudo systemctl status docker
输出将会类似下面这样:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-05-21 14:47:34 UTC; 42s ago
...

当一个新的 Docker 发布时,你可以使用标准的sudo apt update && sudo apt upgrade流程来升级 Docker 软件包。

拉取镜像

运行 Docker 软件,打开 CMD 命令行或者 PowerShell 终端,使用指令下载
docker 官方镜像:

docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

等待下载完成之后,使用 docker images 可以查看到已下载的 docker 镜像
此时镜像名称太长不方便使用,可以使用重命名操作对镜像重命名:

docker image tag swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0 openharmony-docker:1.0.0

此时使用 docker images 再次查看镜像,发现多出一个名为
openharmony-docker:1.0.0 的镜像
可以执行

docker rmi swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:1.0.0

删除旧的镜像:
执行

docker run -it openharmony-docker:1.0.0 

指令可以运行镜像可以看到系统直接进入到了/home/openharmony,但是此时仅是容器运行成功了,还没有代码,无法完成开发,接下来需要获取代码

OpenHarmony 代码获取

通过git(不推荐,有时会卡死)

首先要设置git用户名和邮箱,否则拉去代码时会报错

git config --global user.name "Your Name"
git config --global user.email "youremail@yourdomain.com"

拉去代码

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Release -g ohos:mini
repo sync -c
repo forall -c 'git lfs pull'

通过http

repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.2-Release -g ohos:mini
repo sync -c
repo forall -c 'git lfs pull'

检验

输入hb -v如果出现版本号代表成功

Vscode 安装

开发板实验需要烧录固件,所以要用到 vscode 编辑器导出固件
到该网址下载最新版的 Visual Studio Code,简称 vscode,下载完成后执行安装. 网址: https://code.visualstudio.com/

安装 vscode 插件

打开安装好的 vscode 编辑器,点击左侧插件图标,输入 remote ssh
image.png
点击安装图标,等待安装完成,安装完成之后左侧会出现下面的图标
然后重复步骤安装入 dev contains
image.png

远程连接服务器

3、添加服务器连接配置
点击该选项卡,会进入SSH TARGETS的添加,如下图所示:

image.png

点击添加按钮,输入远程服务器的地址,账号和ip根据自己的情况进行修改,如下图所示:

image.png

保存之后,会将刚才的连接信息存储在 C:\Users\chaxun.ssh\config 中。

此时就可以在SSH TARGETS中看到添加的远程服务器地址了:

image.png

4、连接服务器
右键选择远程服务器,

如果远程服务器能够连接成功,此时会需要你输入密码:

5、基本操作

例如我点击Open Folder,这里就会让你选择打开的文件目录:

点击ok按钮打开 /home/zhaxun 之后,会需要再次输入密码:

启动和连接镜像

启动镜像的方式可以是终端命令行,如果容器已启动,可以选择 attach 连接容器
点击连接容器之后,会弹出一个新窗口,点击左侧上面第一个图标,会显示该
容器内的文件系统(需要一点缓冲时间)
如果界面同以上截图不一样,而是如下所示:
image.png
就点击打开文件夹,在上方弹出的对话框输入/home/openharmony,再点击确
定, 等待片刻就会显示出文件列表,接下来就可以像操作本地文件一样打开文件
并进行编辑,然后修改一个文件:在顶部菜单栏点击终端,再选择新建终端,可以打开终端:
注意观察弹出来的终端,工作目录是否是/home/openharmony,如果不是请检
查前面的操作是否错误或有遗漏
在终端命令行输入:hb set 指令,再输入回车,到达选择开发板的界面,用鼠标
或键盘上下键选择 qemu_mini_system_demo,再敲回车:

  1. 选择好了开发板,就可以执行构建命令:
    hb build -f
    此时系统开始构建,由于我们使用的是 docker 环境,在制作镜像的时候环境已
    经准备好了,所以不需要配置其他的脚本或者工具即可以达到编译固件的目的. 最后终端会显示编译成功,我们可以在 out 相应的目录下找到对应的固件,输
    入:ls out/arm_mps2_an386/qemu_mini_system_demo
  2. qemu 模拟器的运行
    由于模拟器的运行不涉及到具体的硬件,所以本实验不需要烧录步骤,在
    docker 控制台终端输入./qemu-run,再输入 y 就能运行 qemu 模拟器了,下面是运
    行状态的截图:
    在 qemu 的终端里可以输入 help 命令查看该模拟器支持运行哪些指令:
    同学们可以自行尝试列出来的指令
  3. 退出模拟器的运行:
    按住 Ctrl+a 然后同时放开,再按一下 x 键即可退出 qemu 终端可以看出,系统此处退出了 qemu 模拟器回到了 doc
<think>好的,我现在需要解释用户提供的 Docker 命令:`docker run -itd --name oh -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2`。首先,我要分解这个命令的每个部分,理解每个选项的作用,以及整个命令的目的。 首先,用户可能不太熟悉 Docker,或者至少对这个特定命令的参数不太清楚。他们可能想知道每个参数的含义,比如 `-itd`、`--name`、`-v`,以及镜像的来源和作用。此外,用户可能在使用这个命令时遇到了问题,或者想确认自己是否正确理解了命令的结构。 接下来,我需要逐个解析命令的组成部分: 1. **`docker run`**:这是 Docker 的核心命令,用于从镜像创建并启动一个新的容器。 2. **`-itd`**:这是三个选项的组合。`-i` 表示保持 STDIN 打开,即使没有附加;`-t` 分配一个伪终端;`-d` 表示在后台运行容器(detached 模式)。需要确认这三个选项组合后的效果是否正确,比如 `-itd` 是否允许容器在后台运行但仍然可以交互。 3. **`--name oh`**:为容器指定一个名称 `oh`,方便后续管理,比如启动、停止或删除容器时使用名称而不是容器ID。 4. **`-v $(pwd):/home/openharmony`**:这是卷挂载参数。`$(pwd)` 表示当前工作目录,会被挂载到容器内的 `/home/openharmony` 目录。需要确认用户是否了解卷挂载的作用,即主机和容器之间的文件共享。 5. **镜像地址和标签**:`swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2` 这是一个来自华为云容器镜像服务的镜像,标签为3.2,可能包含OpenHarmony的开发环境。 接下来,用户可能想了解这个命令的用途,例如是否用于搭建OpenHarmony的开发环境,如何访问容器,以及挂载卷的实际应用场景。可能还需要提醒用户注意权限问题,比如挂载的目录在容器内的访问权限,或者是否需要额外的参数来确保正确运行。 另外,用户可能对镜像的来源和安全性有疑问,可能需要建议他们确认镜像的可靠性,尤其是在生产环境中使用前。此外,可能需要解释`docker run`和`docker exec`的区别,以及如何进入已经运行的容器(因为这里用了`-d`后台运行,所以可能需要使用`docker exec -it oh bash`来进入容器)。 还需要考虑命令中的变量`$(pwd)`,在Windows环境下可能需要不同的语法,比如使用`%cd%`,但用户使用的是Linux,所以没问题。同时,挂载的路径是否正确,是否可能导致数据覆盖或权限问题。 可能还需要提到,如果当前目录有重要的文件,挂载到容器中后,容器内的进程可能会修改这些文件,需要注意备份或版本控制。此外,如果容器内的应用需要特定端口,可能需要使用`-p`参数来映射端口,但当前命令中没有涉及,所以可能不需要,但可以作为一个扩展点说明。 最后,总结这个命令的作用:创建一个名为oh的后台容器,使用华为云的OpenHarmony标准镜像,并将当前目录挂载到容器的/home/openharmony目录,方便开发时文件共享。用户可能需要进入容器进行开发工作,或者容器会自动执行某些任务,具体取决于镜像的预设命令。 在解释过程中,需要确保术语准确,比如“伪终端”、“后台运行”、“卷挂载”等,同时使用用户容易理解的语言,避免过于技术化。可能还需要给出示例,说明命令执行后的下一步操作,比如如何进入容器,如何检查容器状态等。</think>以下是对命令 `docker run -itd --name oh -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2` 的详细解释: --- ### **命令作用** 此命令用于从指定镜像创建并启动一个名为 `oh` 的 Docker 容器,支持交互式后台运行,并将当前主机目录挂载到容器中。通常用于搭建 OpenHarmony(开源鸿蒙系统)的开发环境,实现主机与容器之间的文件共享。 --- ### **参数解析** 1. **`docker run`** Docker 核心命令,用于创建并启动容器。 2. **`-itd`** 组合选项: - **`-i`**:保持标准输入(STDIN)开放,允许与容器交互。 - **`-t`**:分配伪终端(pseudo-TTY),提供类似终端的交互界面。 - **`-d`**:以“后台模式”(detached)运行容器,不阻塞当前终端。 3. **`--name oh`** 为容器指定名称 `oh`,便于后续通过名称管理容器(如启动、停止、删除等)。 4. **`-v $(pwd):/home/openharmony`** 挂载数据卷(Volume): - **`$(pwd)`**:主机当前工作目录(由 `pwd` 命令获取)。 - **`/home/openharmony`**:容器内的目标挂载路径。 - 作用:实现主机与容器之间的文件同步,容器内对 `/home/openharmony` 的修改会直接反映到主机目录。 5. **镜像地址** `swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_standard:3.2` - 来源:华为云镜像仓库(SWR),专为 OpenHarmony 开发定制。 - 标签 `3.2`:表示镜像版本(可能对应 OpenHarmony 的特定版本)。 --- ### **典型使用场景** 1. **开发环境隔离** 在容器内配置 OpenHarmony 的编译、调试工具链,避免污染主机环境。 2. **文件共享开发** 通过挂载目录,在主机上编辑代码,在容器内直接编译测试(如 OpenHarmony 系统构建)。 3. **快速协作** 团队可通过同一镜像保证开发环境一致性,减少配置差异导致的问题。 --- ### **操作示例** 1. **启动容器** 执行命令后,容器会在后台运行。可通过以下命令查看状态: ```bash docker ps ``` 2. **进入容器** 若需操作容器内部(如执行命令): ```bash docker exec -it oh /bin/bash ``` - `exec`:在运行中的容器内执行命令。 - `/bin/bash`:启动容器的 Bash 终端。 3. **终止容器** 完成操作后停止容器: ```bash docker stop oh ``` --- ### **注意事项** 1. **镜像安全性** 确保镜像来源可信(如华为云官方仓库),避免恶意代码风险。 2. **文件权限** 容器内用户可能与主机用户 UID 不同,若遇到权限问题,可添加 `-u $(id -u):$(id -g)` 参数指定用户组。 3. **资源占用** OpenHarmony 编译可能消耗大量 CPU/内存,建议分配足够资源(通过 `--cpus`、`--memory` 限制)。 4. **数据持久化** 除挂载目录外,容器内其他文件会在容器删除后丢失,重要数据需持久化存储。 --- ### **总结** 此命令为 OpenHarmony 开发提供了一种便捷、隔离的容器环境,适合需要快速搭建或标准化工作流的场景。通过卷挂载实现高效开发,同时依赖 Docker 的隔离性保障环境一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过去日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值