現(xiàn)在我們所做的任何操作都是針對于目前容器而言的,不會影響到原來的系統(tǒng),例如,我們在里面安裝下nginx服務(wù)器箍铲,運(yùn)行如下命令:
sudo apt-get install -y nginx
注意如果[報(bào)E: Unable to locate package的錯誤就先更新apt
鍵入命令,再安裝nginx
apt-get update
參考自:https://blog.csdn.net/belug/article/details/74502245
完成后執(zhí)行nginx -v
就會發(fā)現(xiàn)我們已經(jīng)將nginx安裝成功:
將容器轉(zhuǎn)化為鏡像
在上一小節(jié)中鬓椭,我們已經(jīng)在容器里安裝好了nginx颠猴,接下來我們希望將這個容器內(nèi)容保存下來关划,這樣我們下次就無需再次安裝了。這就是Docker中將容器轉(zhuǎn)換為鏡像的技術(shù)翘瓮。
如果您還在剛剛的安裝了nginx的終端里贮折,執(zhí)行exit
退出此終端,回到系統(tǒng)本身的終端:
ps
命令可以查都運(yùn)行了哪些容器春畔,加上-a
參數(shù)后就表示運(yùn)行過哪些容器脱货,因?yàn)槲覀儎倓傄呀?jīng)退出了安裝nginx的容器,因此我現(xiàn)在想查看它的話律姨,需要使用-a參數(shù)振峻,執(zhí)行如下命令:
docker ps -a
此時,就會顯示出我們剛剛運(yùn)行的容器择份,并且Docker會很貼心的隨機(jī)給每個容器都起個Names方便標(biāo)示扣孟。效果如下:
commit
命令用來將容器轉(zhuǎn)化為鏡像,運(yùn)行下面的命令荣赶,我們可以講剛剛的容器轉(zhuǎn)換為鏡像:
sudo docker commit -m "Added nginx from ubuntu14.04" -a "ggr" 856b24bbbd8c ggr/ubuntu-nginx:v1
其中凤价,-m
參數(shù)用來來指定提交的說明信息;-a
可以指定用戶信息的拔创;79c761f627f3
代表的時容器的id利诺;ggr/ubuntu-nginx:v1
指定目標(biāo)鏡像的用戶名、倉庫名和 tag 信息剩燥。創(chuàng)建成功后會返回這個鏡像的 ID 信息慢逾。注意的是,你一定要將ggr改為你自己的用戶名灭红。因?yàn)橄挛倪€會用到此用戶名侣滩。
這是我們再次使用docker images
命令就會發(fā)現(xiàn)此時多出了一個我們剛剛創(chuàng)建的鏡像:
此時,如果運(yùn)行docker run -it ggr/ubuntu-nginx:v1
就會是一個已經(jīng)安裝了nginx的容器:
存儲鏡像
我們剛剛已經(jīng)創(chuàng)建了自己的第一個鏡像变擒,盡管它很簡單君珠,但這已經(jīng)非常棒了,現(xiàn)在娇斑,我們希望它能夠被更多的人使用到策添,此時,我們就需要將這個鏡像上傳到鏡像倉庫毫缆,Docker的官方Docker Hub應(yīng)該是目前最大的Docker鏡像中心舰攒,所以,我們就將我們的鏡像上傳到Docker Hub悔醋。
首先,我們需要成為Docker Hub的用戶兽叮,前往https://hub.docker.com/進(jìn)行注冊芬骄。需要注意的是猾愿,為了方便下面的操作,你需要將你的用戶名設(shè)為和我剛剛在上文提到的自定義用戶名相同账阻,例如我的剛剛將鏡像的名字命名為是ggr/ubuntu-nginx:v1
,所以我的用戶名為ggr蒂秘、注冊完成后記住用戶名、密碼淘太、郵箱姻僧。
login
默認(rèn)是用來登陸Docker Hub的,因此蒲牧,輸入如下命令來嘗試登陸Docker Hub:
docker login
此時秽之,就會輸出交互症副,讓我們輸入U(xiǎn)sername、Password、Email,成功輸入我們剛才注冊的信息后就會返回Login Success提示:
運(yùn)行命令:
docker push ggr/ubuntu-nginx:v1
這就是我們?yōu)槭裁磳倓偟溺R像命名為ggr/ubuntu-nginx:v1
的原因散休,如果你上面步驟都操作正確的正確的話,是會得到下面的內(nèi)容:
此時佛玄,不出意外的話腰根,我們的鏡像已經(jīng)被上傳到Docker Hub上面了,去Docker Hub上面看
Docker Hub好像要收費(fèi)了 gg
我們在Docker Hub上有了我們的第一個鏡像遵倦,此時尽超,其它的用戶就可以通過命令docker pull ggr/ubuntu-nginx
來直接獲取一個安裝了nginx的ubuntu系統(tǒng)了。不信梧躺?那就自己實(shí)踐一下吧似谁!
參考自:
https://blog.saymagic.cn/2015/06/01/learning-docker.html#umocy