前言
内网上服务器一般是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源码编译环境都可以