Docker創(chuàng)建一個干凈的Ubuntu系統(tǒng)-編譯安卓源碼
前言
內(nèi)網(wǎng)上服務器一般是ubuntu,里面運行的程序很多,如果想研究下android源碼,那必須是一個干凈的ubuntu系統(tǒng)了,那今天我們介紹下用docker創(chuàng)建一個干凈的ubuntu;
一、docker簡單介紹
1、什么是docker
docker提供的就是一種容器化搬運東西(我們的軟件、程序)的過程。docker自己本來是運行在操作系統(tǒng)上一個程序軟件,它會提供一個容器環(huán)境,使我們的程序獨立地運行在容器中;
2、docker的基本命令
(1)docker images 查看本機的鏡像;
- REPOSITORY:倉庫,也是鏡像名稱;
- TAG:標簽,也是版本號,鏡像會有不同的版本號;
- IMAGE ID:鏡像id,根據(jù)這個id我們可以區(qū)分不同的鏡像,也可以對某個鏡像進行操作;
- CREATED:創(chuàng)建時間;
- SIZE:鏡像的大??;
(2)docker rmi 刪除本地的鏡像,加上一個參數(shù)-f表示強制刪除,因為有時候若有運行的相關容器的時候是不能刪除的,如:docker rmi -f nginx 強行停止容器并刪除鏡像,不管是否有占用情況;
(3)docker search 根據(jù)鏡像名稱搜索遠程倉庫中的鏡像,可以看一下查到所有相關名稱的鏡像,可以選擇我們要拉取哪個鏡像;
(4)docker pull <鏡像名稱>:[標簽名稱]:拉取鏡像,默認不寫標簽名稱拉取最新的鏡像;
(5)docker push 推送鏡像,當我們制作了我們自己的鏡像時,我們就可以推送到我們自己的docker hub上去;
二、docker配置ubuntu
所以配置的ubuntu docker為主力環(huán)境,日常開啟用ssh連接。
1、查詢ubuntu系統(tǒng)
sudo docker search ubuntu
在https://hub.docker.com/網(wǎng)站上搜索ubuntu 找自己要下的版本
比如:sudo docker pull ubuntu:18.04 ;sudo docker pull ubuntu:20.04;sudo docker pull ubuntu:23.04;
2、拉取系統(tǒng)和查看鏡像
sudo docker pull ubuntu:23.04;
3、創(chuàng)建容器
docker run -itd --restart=always --name rk3399-20 --privileged -v /home/android/rk3399:/rk3399 ubuntu:20.04 bash
- -d:啟動一個容器,后臺運行,不會占用我們當前的控制臺,一般都要加上,之前我們啟動nginx沒有指定這個參數(shù),就會占用當前控制臺,會一直掛起,有了這個命令就不會占用了。
- -i:以交互模式運行容器,通常會和-t一起來使用(-it)。
- -t:為容器也創(chuàng)建一個命令行窗口,是容器內(nèi)容的命令行窗口,比如我們拉取一個ubuntu的鏡像,我們想要在這個操作系統(tǒng)鏡像里邊執(zhí)行一些命令,那就需要這個參數(shù)了。
- -P:這個是大寫的P,指定宿主機的隨機端口映射到容器內(nèi)部的端口。
- -p:這個是小寫的p,指定某個具體端口映射到容器內(nèi)部端口,比如前邊我們用-p 8080:80,就是讓宿主機的8080端口映射到容器內(nèi)的80端口,這樣我們就可以在外部用8080端口訪問我們?nèi)萜鲀?nèi)部的nginx了(默認容器必須有一個外部的映射端口,不然訪問不了)。
- -v:指定宿主機與容器內(nèi)部的目錄映射,就是之前的數(shù)據(jù)卷所需要的參數(shù),好實現(xiàn)數(shù)據(jù)的持久化和同步。
- –restart=always :開機啟動,失敗也會一直重啟。
- --privileged 容器內(nèi)的root擁有真正的root權(quán)限。
4、進入到容器中
docker exec -it rk3399-20 bash
此時就是一個干凈的系統(tǒng),想部署服務端或者裝android源碼編譯環(huán)境都可以