OpenHarmony - 日常开发小Tips
作者:罗锐 前言 最近在做 Open Harmony L0 设备的开发,为了开发更加的方便,搭建了SSH、Samba、Docker这些使用比较频繁的工具,在此记录一下。分享经验和踩过的坑,希望对后续要做这块的同学会有点帮助,能快速上手。欢迎评论区提出宝贵意见,一起交流,共同进步。本文主要从二个部分来介
作者:罗锐
前言
最近在做 Open Harmony L0 设备的开发,为了开发更加的方便,搭建了SSH、Samba、Docker这些使用比较频繁的工具,在此记录一下。分享经验和踩过的坑,希望对后续要做这块的同学会有点帮助,能快速上手。欢迎评论区提出宝贵意见,一起交流,共同进步。
本文主要从3个部分来介绍:
- 搭建常用开发环境
- 安装Samba
- docker的基础知识
1. 搭建常用开发环境
1.1 VScode通过SSH连接Ubuntu
- 在windows下安装VScode,下载地址:https://code.visualstudio.com/Download
- 在VScode扩展地方安装以下几个插件
在Ubuntu中也需要安装SSH,在终端中通过以下两个命令安装。
sudo apt-get install ssh sudo apt-get install openssh-server # 并查看当前Ubuntu的IP地址 ifconfig
在Vscode下按住
Ctrl+Shift+P
,输入remote
选择下图中的SSH配置文件进行配置。
- 根据在Ubuntu中通过命令
ifconfig
得到的ip地址填写到配置中
- 在Vscode下按住
Ctrl+Shift+P
,输入remote
选择Remote-SSH
进行连接。
1.2 错误处理
如果出现 An SSH installation couldn't be found
,则需要在windows下安装SSH的客户端并配置环境变量。
- 可以
win+R
输入cmd
进入命令行里,输入ssh
查看windows有没有安装SSH。
- 一般情况下
win 10
默认安装了SSH,但是像win 7
就没有默认安装,就需要安装一下。 - windows下SSH软件安装地址:
1.3 配置SSH无密码连接(非必要)
- 在
Windows
的命令行中输入ssh-keygen -t rsa -C "xxx@chinasoftinc.com"
,按Enter
键3次生成以下文件,将框起来的文件拷贝到虚拟机中的home
目录下。
在
Ubuntu
的终端下,输入一样的命令ssh-keygen -t rsa -C "xxx@chinasoftinc.com"
,也是按Enter
键3次。在
Ubuntu
的终端下,进入刚刚拷贝的id_rsa.pub
的目录下,将id_rsa内容以追加的方式,写入anthorized_keys文件里。命令为以下:cat id_rsa.pub >> ~/.ssh/authorized_keys
至此,免密登录就已经完成,下次登录不需要再输入密码啦~
2.安装Samba
我们在开发的过程中,难免需要在与目标机器来回拷贝数据。而VMwere有时候tool工具不是很好用,更新tool还时常出现问题。所以我们一般情况就会安装一个Samba来解决这个问题,让访问目标机器就像访问自己磁盘一样简单。那我们开始吧~
在
Ubuntu
中安装我们所需的软件Samba
。sudo apt-get install samba
配置
samba
,在打开的文件末尾添加如下内容:sudo vim /etc/samba/smb.conf # 要添加的内容如下 [share] comment = Temporary file space path = /home/user/ writable = yes browseable = yes guest ok = yes public = yes valid users = user readonly = yes # Tisp 此处需要vi 或者 vim工具来进行修改 # 缺少工具就使用 sudo apt-get install vim 安装一下 # 输入sudo vim /etc/samba/smb.conf 之后按 i 就可以粘贴啦(插入模式) # 粘贴之后按 Esc 推出插入模式 # 此时按 Shift + ; 键进入命令行模式 # 输入 wq 按回车即可保存并退出 # 每次改动之后 source 是一个好习惯 source /etc/samba/smb.conf
用下面的命令添加自己的登录用户名和密码,建议与Ubuntu的一致(对外的设备可不能这么玩)。
sudo smbpasswd -a 用户名 输入两次密码
添加 Ubuntu 的网络映射
- 配置 samba 的路径
\\192.168.111.129\share
,即Ubuntu
的IP地址加共享的路径。
- 在输入刚刚设置的用户名和密码后,就完成啦~
3.docker的基础
3.1 docker 是什么,用来干什么?
在开发的过程中我们需要搭建很多很多的环境,但是换一个Ubuntu的时候就要重新再次搭建。想想痛苦的过程不是很想经历多次,毕竟还是撸代码爽呀~
所以我们就需要一个专门保存我们搭建好的环境,用的时候拿出来就好了,这就是docker的作用了,一个类似沙盒的虚拟机。
目前来看,我们使用docker是为了适配各种不同的编译构建环境,docker是运行在linux系统下的虚拟系统(也可以把docker认为是一个VMware)。通过docker去编译构建,相当于把工程放入到沙盒中去操作,非法操作对主机无任何影响。
3.2 获取 docker
这里就是安装docker的软件,安装完成还需要下载对应的镜像才能使用哦。
# 安装docker
sudo apt install docker.io
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
# 添加一个新的 HTTPS 软件源,安装一些允许通过HTTPS才能使用的软件包
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# curl 导入源仓库的 GPG key,将官方Docker存储库的GPG密钥添加到系统
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-ce 社区版、 docker-ee 企业版)
sudo apt update
sudo apt install docker-ce
#sudo apt-get install docker-ce docker-ce-cli 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工具下载完成
3.3 获取docker镜像
Docker容器是从Docker镜像构建的。默认情况下,Docker从 Docker Hub 中提取这些镜像,这是一个由Docker管理的Docker镜像市场,这是Docker项目背后的公司。任何人都可以在Docker Hub上托管他们的Docker镜像,所以您只需要将您的应用程序和Linux放在那边托管即可。
S
# 查找远端的镜像
sudo docker search ubuntu
user@ubuntu:~$ sudo docker search ubuntu
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 16717 [OK]
websphere-liberty WebSphere Liberty multi-architecture images … 296 [OK]
ubuntu-upstart DEPRECATED, as is Upstart (find other proces… 115 [OK]
neurodebian NeuroDebian provides neuroscience research s… 105 [OK]
# 获取远端镜像
sudo docker pull ubuntu
# 查看镜像
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest df5de72bdb3b 2 days ago 77.8MB
3.4 运行 docker
这里就是把下载好的镜像通过docker运行起来。
# 运行
docker run -it -v $(pwd):/home/openharmony ubuntu # /home/openharmony 可以自定
docker run -it --name my_name --hostname ubuntu_name -v $(pwd):/home/openharmony ubuntu # 这个是指定主机名和运行的用户名称
# $(pwd) 这是shell命令,获取当前路径
# my_name 可用于删除这个运行的docker
# ubuntu_name 是docker进去之后显示的主机名字
3.5 保存修改后的镜像
我们每次进去这个docker镜像,他都是上次保存的样子。如果我们需要搭建环境,都配置好了怎么拿到别的环境中去使用呢?跟我一起来实现吧~
- 先进入docker,把需要的环境配置好,此时需要返回到
ubuntu
中来,可以在ubuntu
中再开一个终端进行操作。 - 使用以下的命令进行保存当前的修改。
# 查看运行中的 docker
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
bde135cb1ab9 ubuntu "bash" 2 minutes ago Up 2 minutes sweet_cori
# 保存指定镜像的改动,前提是docker未退出的情况下进行
docker commit bde135cb1ab9 ubuntu
3.6 打包 docker 镜像
环境配置好了,怎么给到别的环境去使用呢?那就需要以下两种方式打包出来了。
- 保存与加载我们的
docker
镜像
# 查看已有镜像
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest df5de72bdb3b 2 days ago 77.8MB
# 保存镜像
docker save df5de72bdb3b ubuntu > ubuntu.tar
# 加载镜像
docker load < ubuntu.tar
- 导出与导入我们的
docker
镜像
# 查看 docker
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
ffcdad1d05af ubuntu "bash" 6 seconds ago Up 6 seconds hardcore_lumiere
# 导出镜像 中间的参数是docker ps 查看运行中的docker才能导出
docker export ffcdad1d05af > ubuntu.tar
# 在新机器导入镜像
docker import - ununtu < ubuntu.tar
# 新机器首次运行 可能需要加 /bin/bash
docker run -it -v $(pwd):/home/openharmony ubuntu /bin/bash
3.8 docker 的删除
有时候我们平凡使用docker,他会有停止的镜像占用我们的资源,或者有的镜像我们不需要了,就需要清除干净。
- 关闭某一运行中的镜像,并进行清除。
# 查看运行中的镜像
user@ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
835b42d983dd ubuntu_2.1 "/bin/bash" 5 seconds ago Up 3 seconds keen_sammet
# 停止镜像
user@ubuntu:~$ sudo docker stop 835b42d983dd
835b42d983dd
# 删除镜像
user@ubuntu:~$ sudo docker rm 835b42d983dd
835b42d983dd
- 关闭所有运行中的镜像,并进行清除。
# 关闭所有运行中的docker
sudo docker stop $(sudo docker ps -a -q)
# 删除所有占用的容器
sudo docker rm $(sudo docker ps -a -q)
- 删除无用的docker镜像
# 查看镜像
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 27941809078c 2 weeks ago 77.8MB
# 删除镜像 可用全量停止、全量删除使用的镜像
docker rmi 27941809078c
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:34fea4f31bf187bc915536831fd0afc9d214755bf700b5cdb1336c82516d154e
Deleted: sha256:df5de72bdb3b711aba4eca685b1f42c722cc8a1837ed3fbd548a9282af2d836d
Deleted: sha256:629d9dbab5edeac7fa51f205839d7f9bb629a5e83548da3a183fb66c22fe7af7
更多原创内容请关注:中软国际OpenHarmony技术团队
入门到精通、技巧到案例,系统化分享OpenHarmony开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
更多推荐
所有评论(0)