zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Docker创建一个干净的Ubuntu系统-编译安卓源码

2023-03-14 09:46:26 时间

前言

内网上服务器一般是ubuntu,里面运行的程序很多,如果想研究下android源码,那必须是一个干净的ubuntu系统了,那今天我们介绍下用docker创建一个干净的ubuntu;

一、docker简单介绍

1、什么是docker

docker提供的就是一种容器化搬运东西(我们的软件、程序)的过程。docker自己本来是运行在操作系统上一个程序软件,它会提供一个容器环境,使我们的程序独立地运行在容器中;

 2、docker的基本命令

(1)docker images 查看本机的镜像;

  •   REPOSITORY:仓库,也是镜像名称;
  •   TAG:标签,也是版本号,镜像会有不同的版本号;
  •   IMAGE ID:镜像id,根据这个id我们可以区分不同的镜像,也可以对某个镜像进行操作;
  •   CREATED:创建时间;
  •   SIZE:镜像的大小;

(2)docker rmi 删除本地的镜像,加上一个参数-f表示强制删除,因为有时候若有运行的相关容器的时候是不能删除的,如:docker rmi -f nginx 强行停止容器并删除镜像,不管是否有占用情况;

(3)docker search 根据镜像名称搜索远程仓库中的镜像,可以看一下查到所有相关名称的镜像,可以选择我们要拉取哪个镜像;

(4)docker pull <镜像名称>:[标签名称]:拉取镜像,默认不写标签名称拉取最新的镜像;

(5)docker push 推送镜像,当我们制作了我们自己的镜像时,我们就可以推送到我们自己的docker hub上去;

二、docker配置ubuntu

所以配置的ubuntu docker为主力环境,日常开启用ssh连接。

1、查询ubuntu系统

sudo docker search ubuntu

在https://hub.docker.com/网站上搜索ubuntu 找自己要下的版本

比如:sudo docker pull ubuntu:18.04  ;sudo docker pull ubuntu:20.04;sudo docker pull ubuntu:23.04;      

2、拉取系统和查看镜像

sudo docker pull ubuntu:23.04;

3、创建容器

docker run -itd --restart=always --name rk3399-20 --privileged -v /home/android/rk3399:/rk3399 ubuntu:20.04 bash

  • -d:启动一个容器,后台运行,不会占用我们当前的控制台,一般都要加上,之前我们启动nginx没有指定这个参数,就会占用当前控制台,会一直挂起,有了这个命令就不会占用了。
  • -i:以交互模式运行容器,通常会和-t一起来使用(-it)。
  • -t:为容器也创建一个命令行窗口,是容器内容的命令行窗口,比如我们拉取一个ubuntu的镜像,我们想要在这个操作系统镜像里边执行一些命令,那就需要这个参数了。
  • -P:这个是大写的P,指定宿主机的随机端口映射到容器内部的端口。
  • -p:这个是小写的p,指定某个具体端口映射到容器内部端口,比如前边我们用-p 8080:80,就是让宿主机的8080端口映射到容器内的80端口,这样我们就可以在外部用8080端口访问我们容器内部的nginx了(默认容器必须有一个外部的映射端口,不然访问不了)。
  • -v:指定宿主机与容器内部的目录映射,就是之前的数据卷所需要的参数,好实现数据的持久化和同步。
  • –restart=always :开机启动,失败也会一直重启。
  • --privileged   容器内的root拥有真正的root权限。

4、进入到容器中

docker exec -it rk3399-20 bash

此时就是一个干净的系统,想部署服务端或者装android源码编译环境都可以