国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP下如何優(yōu)雅的使用Docker來構(gòu)建環(huán)境(二)

jollywing / 3171人閱讀

摘要:指令這條命令是指明最后容器需要暴露哪些端口號,這樣其他系統(tǒng)才能使用這個端口。但是靈活性不高,后面我在編排的時候會教大家用編排來統(tǒng)一開發(fā)環(huán)境。更多還有更多指令大家看下官方文檔,我自己覺得上面的指令算是使用比較多的了。

前言

上一篇文章呢,我們簡單的了解了Docker的基本命令,這篇文章呢,我們來了解下Dockerfile這個文件。

一個神奇的文件:Dockerfile

我不知道有多少同學(xué)之前用過Vagrant來統(tǒng)一開發(fā)環(huán)境的,如果你之前接觸過Vagrant的話,Dockerfile有點類似于vagrantfile文件。
一言以蔽之,Dockerfile就是描述了你要構(gòu)建一個什么樣的鏡像,好比你要建立一棟大樓,你需要把每一步寫進(jìn)一張藍(lán)圖中,然后交給工人(docker build [dockerfile文件所在路徑]),然后你就擁有了一棟房子,懂了么?懂了么?懂了么?
我們來看下dockerfile長什么樣子吧?

# Nginx
#
# VERSION               0.0.1

FROM      ubuntu
MAINTAINER Victor Vieux 

LABEL Description="This image is used to start the foobar executable" Vendor="ACME Products" Version="1.0"
RUN apt-get update && apt-get install -y inotify-tools nginx apache2 openssh-server

這個是官方給出的例子。
FROM指明了這里鏡像繼承Ubuntu的基礎(chǔ)系統(tǒng)。
MAINTAINER是指明了作者信息,一般是名字和郵箱。
LABEL是為你即將打造的鏡像寫上一些標(biāo)簽信息。
RUN這個是執(zhí)行一條命令,等價于你在終端打了一條命令

當(dāng)然,遠(yuǎn)遠(yuǎn)不止這些命令,我列舉幾條比較常用的還有一些注意點吧。

FROM指令
FROM : 

這里大家要注意一點就是,docker官方源鏡像被墻,所以如果你要使用國內(nèi)源的話需要這樣來書寫:FROM daocloud.io/ubuntu:latest,這是很多新人一直摸不著頭腦經(jīng)常要問的,這里給大家提示下。

RUN指令
RUN 

這條命令相當(dāng)于你在終端執(zhí)行了一條命令,當(dāng)然這條命令一般是一條能夠帶來內(nèi)容寫入的命令,比如RUN apt-get install vim這樣的安裝程序的命令,或者是RUN echo "Hello" > /hello.txt這樣的腳本命令。RUN可以在dockerfile中存在多條,大家要注意了。
當(dāng)然還有RUN ["/bin/bash", "-c", "echo hello"]這樣也是可以的。

CMD指令
CMD ["executable","param1","param2"]

CMD指令一般用來指明啟動容器時需要運行什么進(jìn)程。一般我們是跑一條無輸入有輸出的前臺進(jìn)程,比如官方ghost啟動時就運行了/entrypoint.sh npm start,這就是一條無輸入有輸出的命令,輸出將會作為容器的日志顯示。但是你看到ghost的Dockerfile會發(fā)現(xiàn):

...
COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 2368
CMD ["npm", "start"]

ENTRYPOINT是配置容器啟動后執(zhí)行的命令,CMD此時為它提供了兩個參數(shù),所以等價于CMD /entrypoint.sh npm startCMD只能執(zhí)行一次,重復(fù)寫會覆蓋哦。

EXPOSE指令
EXPOSE  [...]

這條命令是指明最后容器需要暴露哪些端口號,這樣其他系統(tǒng)才能使用這個端口。比如常見的803306這些,PHP開發(fā)者對這些端口應(yīng)該是非常熟悉的了。在這里多說幾句,就是寫明了這個指令不代表你可以從外面就直接連進(jìn)來,因為你的dockerfile最后生成的是鏡像文件,你需要用這個鏡像文件來run容器。所以你要在run的時候使用-P參數(shù)來隨機分配映射口或者使用-p來指定端口映射。

ADD、COPY指令
ADD   
COPY  

這兩個都是復(fù)制命令,比如Ubuntu下需要換源(替換/etc/apt/source.list文件)就可以用這個命令,推薦使用COPY

VOLUME掛載指令
VOLUME ["/data"]

顧名思義,就是掛載一個主機目錄到你的容器內(nèi),對于PHP開發(fā)者而言就是你可以在本地寫好代碼在目錄/workdir/test,然后掛載進(jìn)去來省去繁雜的復(fù)制代碼進(jìn)入容器的過程。但是靈活性不高,后面我在編排的時候會教大家用編排來統(tǒng)一開發(fā)環(huán)境。

更多

還有更多指令大家看下官方文檔,我自己覺得上面的指令算是使用比較多的了。作為PHP開發(fā)者只要認(rèn)識這幾個我覺得夠用了。

構(gòu)建鏡像

前面說了好多,目的就只是為了自動化構(gòu)建一個屬于自己的鏡像。哈哈,別不耐煩,但凡官方給出的鏡像都會附帶一份dockerfile的,不信到hub上去look look。你的PHP官方也是給出了dockerfile:Docker Official Image packaging for PHP

好了,該給出這道命令了

docker build [dockerfile所在目錄]

比如我的dockerfile路徑是~/project/dockerfile,那么我構(gòu)建鏡像的命令是:

docker build -t cnbrucehong/myimg   ~/project/
                   |                     |
       -t指明了你要給這個鏡像什么名字  注意這里沒有dockerfile

然后你鍵入

docker images

你就能看到你創(chuàng)建的鏡像啦,趕緊run一下試試吧!~有問題可以在下面留言哦!~

下節(jié)預(yù)告

下屆我們來說說如何在Mac下優(yōu)雅的搭建Docker,哈哈如果你是linux的用戶可以直接跳過,如果是window的話也是可以看看的,因為里面介紹的軟件在window也是有的,但是我還是推薦大家使用mac啦,下節(jié)見咯!~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26544.html

相關(guān)文章

  • PHP如何優(yōu)雅使用Docker構(gòu)建環(huán)境()

    摘要:指令這條命令是指明最后容器需要暴露哪些端口號,這樣其他系統(tǒng)才能使用這個端口。但是靈活性不高,后面我在編排的時候會教大家用編排來統(tǒng)一開發(fā)環(huán)境。更多還有更多指令大家看下官方文檔,我自己覺得上面的指令算是使用比較多的了。 前言 上一篇文章呢,我們簡單的了解了Docker的基本命令,這篇文章呢,我們來了解下Dockerfile這個文件。 一個神奇的文件:Dockerfile 我不知道有多少同學(xué)...

    longshengwang 評論0 收藏0
  • 聯(lián)調(diào)環(huán)境快速部署——基于docker-composeCI/CD實踐

    摘要:三部署架構(gòu)說明這個方案僅適用于小公司敏捷項目團(tuán)隊聯(lián)調(diào)測試環(huán)境的部署,同時也可以作為學(xué)習(xí)入門的,并不適用于有一定規(guī)模的生產(chǎn)環(huán)境。另外,建議把測試域名泛解析到部署這臺服務(wù)的機器。模塊配置部署腳本業(yè)務(wù)模塊的配置基本是通過部署腳本來操作的。 項目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發(fā)測試環(huán)境,也可以擴展構(gòu)建其...

    xiaokai 評論0 收藏0
  • 聯(lián)調(diào)環(huán)境快速部署——基于docker-composeCI/CD實踐

    摘要:三部署架構(gòu)說明這個方案僅適用于小公司敏捷項目團(tuán)隊聯(lián)調(diào)測試環(huán)境的部署,同時也可以作為學(xué)習(xí)入門的,并不適用于有一定規(guī)模的生產(chǎn)環(huán)境。另外,建議把測試域名泛解析到部署這臺服務(wù)的機器。模塊配置部署腳本業(yè)務(wù)模塊的配置基本是通過部署腳本來操作的。 項目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發(fā)測試環(huán)境,也可以擴展構(gòu)建其...

    klinson 評論0 收藏0
  • 程序員筆記——如何編寫優(yōu)雅Dockerfile

    摘要:導(dǎo)讀要從容器化開始,而容器又需要從開始,本文將介紹如何寫出一個優(yōu)雅的文件。只要記住以上三點就能寫出不錯的。執(zhí)行完成項目的構(gòu)建。 導(dǎo)讀 Kubernetes要從容器化開始,而容器又需要從Dockerfile開始,本文將介紹如何寫出一個優(yōu)雅的Dockerfile文件。 文章主要內(nèi)容包括: Docker容器 Dockerfile 使用多階構(gòu)建 感謝公司提供大量機器資源及時間讓我們可以實踐...

    曹金海 評論0 收藏0
  • 使用 docker-compose 搭建 Laravel 環(huán)境 (三)

    摘要:更換源更新源使用的源通過安裝腳本安裝應(yīng)用所需要的依賴。 showImg(https://segmentfault.com/img/remote/1460000011106825); 有了第二篇《使用 Docker 搭建簡易的 Java Web 環(huán)境 (二)》,懂了如何通過單一鏡像創(chuàng)建 Docker 環(huán)境,這篇主要學(xué)習(xí)如何使用「docker-compose」。目標(biāo)是:搭建 Laravel...

    bingchen 評論0 收藏0

發(fā)表評論

0條評論

jollywing

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<