docker入門指導

驗證安裝

docker run hello-world

# 分析上面指令結構:
# docker: 告訴操做系統,正在使用docker程序
# run: 子指令,建立並運行容器
# hello-world: 告訴docker哪一個image被導入容器

打印以下:
image
完美,你的電腦上已經成功安裝docker了。如今咱們開始瞭解第一個概念:容器。按照下面的操做來,先有個感官的認識,稍後會詳細解釋容器。java

查看container

從上面的指令能夠知道,咱們的docker已經安裝成功了。咱們能夠用下面的命令查看本身正在運行的容器:程序員

docker ps  //顯示全部正在運行的容器

固然,也可能顯示沒有正在運行的容器(剛開始安裝,尚未運行任何容器)。咱們給它加個參數就能查看全部容器,包括沒有運行的、正在運行的和運行過的。以下:docker

docker ps -a

結果圖:
image
這樣就能夠看到全部的容器,你必定能找到 hello-world這個運行過的容器。ubuntu

鏡像

鏡像,就是一個文件系統,查看本身local的鏡像命令:vim

docker images   //顯示的是本地鏡像

鏡像保存到本地的好處:當加載image的時候,會直接在本地加載,不用去遠程下載。節省時間,節省寬帶。查找鏡像地址: https://store.docker.com/comm...服務器

鏡像和容器的區別:容器只是鏡像的一個實例,鏡像被加載只是建立了一個實例。咱們經過上面指令查看鏡像,顯示的可能比容器(docker ps -a) 要多。由於還有一些鏡像只是下載在本地,卻沒有被加載,比如maven有個本地倉庫。maven

刪除容器

docker rm [id/name]

#刪除全部
docker rm `docker ps -a -q`  #-q表示只返回容器的id

須要注意的是:上面的命令只是刪除容器,不是刪除鏡像。ide

構建本身的鏡像

首先建立一個Dockerfile文件,這個文件是一個菜單。由files,environment,commonds 來構建一個images.學習

建立一個mydocker文件夾

mkdir mydocker
// 進入該目錄下
cd mydocker

在新建目錄下建立Dockerfile文件

touch Dcokerfile
//用vim打開編輯
vim Dockerfile

開始編寫Dockerfile

  • 下面FROM指令的意思是,告訴Docker你要基於哪一個鏡像進行構建測試

FORM docker/whalesay:latest
  • 下面RUN指令,給鏡像安裝一個軟件fortunes(由於whalesay是基於ubuntu的,因此下面能夠執行一些對象的指令)

RUN apt-get -y update && apt-get install fortunes
  • 下面的CMD指令, 告訴鏡像(這裏是指成功後的鏡像)最後須要去運行的指令

CMD /usr/games/fortune -a | cowsay

好了,一切就緒。開始構建吧!

在Dockerfile同級目錄下運行,用docker build 來構建,-t (tag)是給鏡像一個tag,方便後面運行。表示Dockerfile在當前目錄下

docker build -t robin-whale .

咱們能夠看看執行的打印輸出,能夠了解下詳細的執行過程,成功會打印輸出:Successfully built c5857....

查看下本身構建的鏡像

還記得怎麼查看嗎?對,你猜對了!就是用images來查看

docker images

image
能夠看到第一行,就是咱們剛剛構建的鏡像。

Docker Hub

註冊一個Docker Hub帳戶

這裏建立帳號

建立倉庫

註冊帳號後,登錄。在本身的主頁面,點擊 create Repository建立一個本身的倉庫。
image

Visibility 這裏選擇public,這樣才能分享給他人使用,咱們是要擁抱開源。

給你的images打上你的標誌

在上傳鏡像以前,先給你的images打上你本身的標籤吧!證實這是個人images,可能一不當心,你就出名了,哈哈!!!

帳戶名/鏡像:版本

這裏[帳戶名/]就是你的標籤,官方給出的是,標籤用你的docker hub帳戶名。給某個鏡像打標籤用 docker tag

docker tag c58570c0ad0d robinyang0909/robin-whale:latest

//docker tag 鏡像id 新標籤:版本

再來執行 docker images 看看
image
能夠看到 robinyang0909/robin-whale這個鏡像生成了。再看時間,能夠發現,並無新建一個鏡像,只是新建了一個images名,指向了robin-whale這個鏡像。

萬事俱備,如今能夠上傳本身的鏡像了!你已經火燒眉毛出名了嗎?別慌,先登陸下你的帳戶。

登錄本身的帳戶

docker login

執行上面命令,而後輸入你的帳戶名和密碼,出現 Login Succeeded 登錄成功。

開始push鏡像

docker push robinyang0909/robin-whale

image

回車,開始push你的鏡像,過程估計有點慢,由於docker hub 畢竟不是咱們作的,等誰有能力了,大家就去整一個牛逼的開源技術,而後服務器就放在咱們本身國家。

push成功後顯示結果:
image

怎麼測試咱們push到docker hub上的是一個完整的鏡像呢?對,你猜對了!刪除本地鏡像,而後從新從倉庫下載。

刪除本地鏡像

有的程序員有「潔癖」,不想在本身的電腦放一些沒用的東西佔內存,好比剛開始下載的 hello-world鏡像,我就想刪掉!

docker rmi c58570c0ad0d # 你的id確定跟這裏不同

要是上面的命令刪不掉的話,用下面的試試:

docker rmi -f c58570c0ad0d  #強制刪除

固然,剛開始學習,你的機器上估計也沒有什麼重要的鏡像,應該均可以刪除吧!這裏教你一招,清空!慎用!

docker rmi -f `docker images -a -q`

體驗下載本身容器的快樂

好了,經理上面的刪除鏡像,相信你已經刪除完那個上傳的鏡像。開始下載運行本身的鏡像吧!怎麼作?相信你沒有忘記,就在最上面, 對!docker run ..

docker run robinyang0909/robin-whale

記得加上本身帳戶名,回車,開始下載。估計有點慢,由於咱們上傳到的是docker hub上,不是國內服務器。
image
看到上圖的話,說明你本身構建鏡像,上傳,下載,運行這幾步都是成功的!恭喜你成功了邁出了第一步。如今你已經慢慢入門的,能夠去說,我會使用docker了,哈哈!

這裏再來回想一個問題:上面咱們在上傳鏡像以前對本身的鏡像打了tag,爲何要這麼作?在下載本身上傳的鏡像,相信你已經想到了,若是不加上本身帳戶名的話,那麼你們都上傳,要是遇到同名的鏡像咋辦!下載該下載誰的!加上本身的用戶名,就是起一個namespace的做用,相似java裏的包名做用。用戶名是不會重複的,由於你註冊的時候,保證了你的用戶名具備惟一性。

相關文章
相關標籤/搜索