Docker

Docker

Getting Started

1.打開cmd窗口輸入腥光,docker運(yùn)行指令
docker run -d -p 80:80 docker/getting-started
簡寫版本: docker run -dp 80:80 docker/getting-started


參數(shù)解釋
-d: -以分離模式運(yùn)行容器(在后臺)
-p 80:80: -將主機(jī)的端口80映射到容器中的端口80
getting-started: -使用的映像

2.什么是容器()
簡單地說愧驱,容器只是您機(jī)器上與主機(jī)上所有其他進(jìn)程隔離的另一個進(jìn)程。這種隔離利用了內(nèi)核名稱空間和cgroup,這些特性在Linux中已經(jīng)存在很長時間了褒傅。Docker致力于使這些功能易于接近和使用乾戏。

3.什么是容器圖像
在運(yùn)行容器時,它使用一個獨(dú)立的文件系統(tǒng)直颅。此自定義文件系統(tǒng)由容器映像提供氧吐。由于映像包含容器的文件系統(tǒng),因此它必須包含運(yùn)行應(yīng)用程序所需的所有內(nèi)容—所有依賴項末盔、配置筑舅、腳本、二進(jìn)制文件等陨舱。映像還包含容器的其他配置翠拣,例如環(huán)境變量、要運(yùn)行的默認(rèn)命令和其他元數(shù)據(jù)游盲。

Our Application

1.Getting our App
    1-1:localhost/assets/app.zip
    1-2: 解壓后用編譯器打開
2.Building the App's Container Image(構(gòu)建應(yīng)用程序的容器映像)
    2-1: 在package.json同級目錄下新建Dockerfile添加以下信息

    FROM node:12-alpine
    RUN apk add --no-cache python g++ make
    WORKDIR /app
    COPY . .
    RUN yarn install --production
    CMD ["node", "src/index.js"]

    請檢查Dockerfile文件是否沒有類似.txt的文件擴(kuò)展名误墓。某些編輯器可能會自動附加此文件擴(kuò)展名蛮粮,這將導(dǎo)致下一步出錯。

    2-2: 如果您還沒有這樣做谜慌,請打開一個終端并使用Dockerfile轉(zhuǎn)到app目錄∪幌耄現(xiàn)在使用docker build命令構(gòu)建容器映像

    在app文件夾下cmd  輸入docker build -t getting-started .

    此命令使用Dockerfile構(gòu)建新的容器映像。你可能已經(jīng)注意到下載了很多“層”欣范。這是因為我們指示建筑商我們要從node:12-alpine image. 但是变泄,因為我們的機(jī)器上沒有這個,所以需要下載這個圖像恼琼。
    圖像下載后妨蛹,我們復(fù)制到應(yīng)用程序中,并使用yarn安裝應(yīng)用程序的依賴項晴竞。CMD指令指定從該圖像啟動容器時要運(yùn)行的默認(rèn)命令蛙卤。
    最后,-t標(biāo)志標(biāo)記我們的圖像噩死。把它簡單地看作是最終圖像的可讀名稱颤难。由于我們將圖像命名為getting started,因此在運(yùn)行容器時可以引用該圖像甜滨。
    這個乐严。在docker build命令的末尾,docker應(yīng)該在當(dāng)前目錄中查找Dockerfile衣摩。

Starting an App Container

    在app文件夾下cmd  輸入docker run -dp 3000:3000 getting-started

Updating our App

1.在app項目下的:src/static/js/app.js文件中修改第56行
 刪掉<p className="text-center">No items yet! Add one above!</p>
 新增<p className="text-center">You have no todo items yet! Add one above!</p>
2.使用build來更新已有的映像昂验,用之前使用的命令構(gòu)建(注意后面的點)
    docker build -t getting-started .
3.然后創(chuàng)建一個新的同期來更新代碼
    docker run -dp 3000:3000 getting-started
4.你會發(fā)現(xiàn)報一個錯誤(端口被占用)
    docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_burnell 
(bb242b2ca4d67eba76e79474fb36bb5125708ebdabd7f45c8eaf16caaabde9dd): Bind for 0.0.0.0:3000 failed: port is already allocated.

Replacing our Old Container

使用CLI刪除容器
1.查看容器(docker ps獲取到ID)
    docker ps
2.docker stop停用容器
    docker stop
3.docker rm移除容器
    docker rm

當(dāng)然也可以在docker應(yīng)用程序中直接移除

Starting our updated app container

1.現(xiàn)在啟動更新過的app
    docker run -dp 3000:3000 getting-started
圖片.png

Sharing our App

1.創(chuàng)建回購(Create a Repo)
    1-1:https://hub.docker.com/  登錄
    1-2: 點擊 Create Repository 按鈕
    1-3: 對于回購的名稱, 使用 getting-started. 確保 Visibility 是 Public
    1-4: 點擊 Create 按鈕! 

如果出現(xiàn)下圖表示成功

圖片.png

Pushing our Image

1.在命令行端口,試著在 Docker Hub 運(yùn)行push命令艾扮,你的命令行會使用你的命名空間而不是docker

    $ docker push docker/getting-started
    The push refers to repository [docker.io/docker/getting-started]
    An image does not exist locally with the tag: docker/getting-started

2.在網(wǎng)站使用docker login -u YOUR-USER-NAME登錄

    docker login -u YOUR-USER-NAME
            ##在DOS輸入密碼的時候是不會提示有信息既琴,輸入完密碼之后回車就可以了

3.使用docker tag來給getting-startted映像一個新的名字,確保調(diào)出YOUR-USER-NAME

docker tag getting-started YOUR-USER-NAME/getting-started

4., Docker will use a tag called latest

docker push YOUR-USER-NAME/getting-started
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泡嘴,一起剝皮案震驚了整個濱河市甫恩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酌予,老刑警劉巖磺箕,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抛虫,居然都是意外死亡松靡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門建椰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雕欺,“玉大人,你說我怎么就攤上這事⊥懒校” “怎么了啦逆?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長笛洛。 經(jīng)常有香客問我夏志,道長,這世上最難降的妖魔是什么撞蜂? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任盲镶,我火速辦了婚禮,結(jié)果婚禮上蝌诡,老公的妹妹穿的比我還像新娘溉贿。我一直安慰自己,他們只是感情好浦旱,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布宇色。 她就那樣靜靜地躺著,像睡著了一般颁湖。 火紅的嫁衣襯著肌膚如雪宣蠕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天甥捺,我揣著相機(jī)與錄音抢蚀,去河邊找鬼。 笑死镰禾,一個胖子當(dāng)著我的面吹牛皿曲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吴侦,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼屋休,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了备韧?” 一聲冷哼從身側(cè)響起劫樟,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎织堂,沒想到半個月后叠艳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡易阳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年虑绵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闽烙。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出黑竞,到底是詐尸還是另有隱情捕发,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布很魂,位于F島的核電站扎酷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏遏匆。R本人自食惡果不足惜法挨,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望幅聘。 院中可真熱鬧凡纳,春花似錦、人聲如沸帝蒿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葛超。三九已至暴氏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绣张,已是汗流浹背答渔。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留侥涵,地道東北人沼撕。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像独令,于是被迫代替她去往敵國和親端朵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容