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