当前位置: 首页 > 科技观察

Docker打造干净的Ubuntu系统——编译Android源码

时间:2023-03-13 12:35:44 科技观察

前言网上的服务器一般都是ubuntu,里面运行着很多程序。如果要研究android源码,那必须是干净的ubuntu系统。今天我们就来介绍一下使用docker打造一个干净的ubuntu;一、docker简介1、什么是dockerdocker提供的是一个容器化搬运东西(我们的软件,程序)的过程。Docker本身本来就是一个运行在操作系统上的程序软件,它会提供一个容器环境,让我们的程序可以在容器中独立运行;2、docker基本命令(1)dockerimages查看本机的镜像;  REPOSITORY:仓库,也就是镜像名;  TAG:tag,也就是版本号,图片会有不同的版本号;  IMAGEID:图片id,我们可以根据它来区分不同的镜像进行操作;  CREATED:创建时间;  SIZE:图像的大小;(2)dockerrmi删除本地镜像,加一个参数-f表示强制删除,因为有时候有相关容器在运行,无法删除,如:dockerrmi-fnginx强制停止容器,删除镜像,不管它是否被占用;(3)dockersearch根据镜像名称在远程仓库中搜索镜像,可以查看所有名称相关的镜像,可以选择我们要拉取哪个镜像;(4)dockerpull:[tagname]:拉取镜像,拉取最新的镜像,默认不写tag名;(5)dockerpush推送镜像,当我们制作自己的镜像时,可以推送到我们自己的dockerhub上去;2、Docker配置ubuntu,所以配置的ubuntudocker为主环境,日常开启使用ssh连接。1、查询ubuntu系统sudodockersearchubuntu在https://hub.docker.com/网站上搜索ubuntu,找到你想要的版本例如:sudodockerpullubuntu:18.04;sudodockerpullubuntu:20.04;sudodockerpullUbuntu:23.04;2.拉取系统并查看镜像sudodockerpullubuntu:23.04;3、创建容器dockerrun-itd--restart=always--namerk3399-20--privileged-v/home/android/rk3399:/rk3399ubuntu:20.04bash-d:启动一个容器,后台运行,不会占用我们当前的控制台,一般需要添加,在启动nginx前不指定此参数,会占用当前控制台并永远挂起,使用此命令则不会被占用;-i:以交互方式运行容器,通常与-t(-it)一起使用;-t:为容器创建一个命令行窗口,就是容器内容行窗口的命令,比如我们拉取一个ubuntu镜像,我们要在这个操作系统镜像中执行一些命令,那么就需要这个参数;-P:这是一个大写的P,指定宿主机的随机端口映射到容器Internal端口;-p:这是一个小写的p,指定一个特定的端口映射到容器的内部端口。比如我们前面用的-p8080:80,意思就是将宿主机的8080端口映射到容器中的80端口,这样我们就可以使用8080端口访问我们容器内部的nginx(默认容器必须有外部映射端口,否则无法访问);-v:指定宿主机,宿主机和容器的目录映射是前面数据卷需要的参数,从而实现数据持久化和同步;--restart=always:开机,失败总是重启;--容器内root权限有real4.进入容器dockerexec-itrk3399-20此时bash是一个干净的系统,可以部署服务器或者安装android源码编译环境