愛車如愛妃 大聲告訴我!你喜歡平的還是凸的?_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

而作為B級車,舒適型定位,偏向於家用或商務,那麼廠家也會妥善處理好後排的隆起高度,來提升中間乘客的舒適度。值得大家注意的是,後排是否凸起與車輛本身的強度還是安全性沒有一毛錢關係。事實上,早在設計之初,廠家就已經把底盤的零部件通通考慮進去,而不是中途“挖空”後排而犧牲車身質量。



談到後排空間的舒適度,很多人只關心軸距、高低、座椅等等,卻很少注意到後排平整度如何。其實,後排平整度也是評價後排競爭力至關重要的指標,而且相信大家無論是買車還是坐車,對於後排中央的乘坐體驗也是十分關心的。

但如今不少轎車的後排中央地板總是會莫名其妙地凸起一部分,侵佔着有限的後排空間不說,更重要的是影響了後排中間乘客的舒適度。當然,也不乏見到有些車幾乎把後排地板處理得很平整。那麼,兩者之間的差距又是由什麼引起的?

簡單來說,後排凸與不凸與車輛本身的机械結構與布局有關。後排凸起,是因為考慮到排氣管、傳動軸,甚至一些剎車管線等重要零部件需通過汽車底盤的中央部分,而為了保護這些零部件的安全性,往往只能放置在後排的凸起位置,從而抬高零部件的離地間距。對於SUV、MpV這一類的車型,則是由於自身的離地間隙較高,沒有必要刻意讓位給這些零部件,因此,SUV的後排凸起相對比較少見,但並不代表就沒有。

其次,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

現在許多車企都具有平台化造車理念,以致於旗下的車型在結構上通常有不同程度的相似,後排的凸起自然也秉承了品牌的一貫傳統,比如說大眾、馬自達。而在這樣的背景下,即便是前驅車,其後排地板仍會凸起。這是由於同一款車型還分成了四驅與兩驅,車企為了兼顧到四驅車特殊的結構布局,同時受制於成本只能選擇在前驅車上繼續採用這樣的設計。所以,單純地通過後排的凸起與否,進而來判斷車輛到底是四驅還是兩驅是不夠準確的。

當然,後排的凸起也與產品定位、設計理念等不無關係。一般來說,如果是A級車,運動型定位,那麼後排的凸起比較常見,在消費者看來倒也無傷大雅。而作為B級車,舒適型定位,偏向於家用或商務,那麼廠家也會妥善處理好後排的隆起高度,來提升中間乘客的舒適度。

值得大家注意的是,後排是否凸起與車輛本身的強度還是安全性沒有一毛錢關係。事實上,早在設計之初,廠家就已經把底盤的零部件通通考慮進去,而不是中途“挖空”後排而犧牲車身質量。就目前來說,後排凸起的現象明顯集中在德系車上,包括大眾、寶馬等品牌。而後排地板幾乎全平整的,一般在日系車、韓系車以及國產車身上的概率較大,不過也有些日系車的後排隆起還是比較明顯,如軒逸、新思域等。

說到這,不妨推薦幾款後排地板幾乎全平的車型,來告別尷尬的“劈腿”坐姿。

豐田卡羅拉

售價:10.78-17.58萬

後排平整度:

艾瑞澤7

售價:7.29-21.29萬

後排平整度:

長安睿騁

售價:10.88-20.18萬

後排平整度:

現代名圖

售價:12.98-17.68萬

後排平整度:

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

逼格有多高?關鍵看車門!這些車門我能玩一年!_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

馬自達RX-8使用對開門的初衷和寶馬i3較為相似,主要是為了方便乘客進入後排座椅,不過即使是再怎麼方便,相信也沒幾個人願意坐在RX-8的後排。鷗翼式車門向300 SL Gulling致敬的奔馳SLS-AMG,僅靠鷗翼式車門就能夠收集眾人的目光,雖然鷗翼門非常炫酷,但是日常的使用當中難免會顯得麻煩,看門前要觀察上下左右各個方位,確保有足夠空間才能夠開門。

《女子騎車突遇汽車開門:被撞倒地遭碾壓身亡》、《騎車男子遭前方車輛開門撞倒 又被公交碾壓》類似這樣的新聞幾乎每個月都能夠看見,每次看到這樣的新聞都會不禁感嘆,為什麼這麼多血的教訓擺在面前,都不懂得珍惜生命。

其實在現實中,有很多人都是沒有觀察後方路況就隨意開門的,只不過是運氣好,沒有發生意外而已。無論是在路上開車還是騎車走路,我們都要對停在路邊的車輛額外注意,盡量遠離車門,真的可能隨時來一個謀殺式的開門。

在路邊停車后開門下車前,一定要觀察後方路況,這樣的話都不知道說了多少千百遍了,既然大家都不放在心上,那麼我們也就不管了(就是這麼任性),我們來看看車門的“藝術”吧。

1989年,寶馬推出了一款很特別的跑車-寶馬Z1,它擁有着隱藏式的車門,開門時通過伸縮的方式隱藏在車身內,這樣的車門結構,能夠從源頭降低發生意外的幾率,可惜這輛神奇的寶馬Z1總共才生產了8000輛,並且只在德國和美國銷售,估計現在存活的已經很少,並且都是在收藏家手中了。

對開式車門有着“自殺式車門”的稱號,經常被人調侃,主要都是說車輛行駛當中後車門無意打開會發生怎樣怎樣的情況,其實廠家也會想到這些情況,在開門邏輯與安全性上都不斷在優化。

勞斯萊斯一直在堅持使用對開式車門,賦予了對開式車門優雅的調性,而不是什麼炫酷,據說勞斯萊斯的對開門設計,

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

還有隱藏在車門內的雨傘,就是為了女星門走紅毯設計的,能夠提供一個相對私密的空間方便下車。

寶馬i3的對開門設計非常激進,取消了車輛B柱的設計,直接用車門車門作為支撐,i3的對開門最主要目的是方面後排乘客上下車,並且有利於提供更大的車廂空間。

馬自達RX-8使用對開門的初衷和寶馬i3較為相似,主要是為了方便乘客進入後排座椅,不過即使是再怎麼方便,相信也沒幾個人願意坐在RX-8的後排。

向300 SL Gulling致敬的奔馳SLS-AMG,僅靠鷗翼式車門就能夠收集眾人的目光,雖然鷗翼門非常炫酷,但是日常的使用當中難免會顯得麻煩,看門前要觀察上下左右各個方位,確保有足夠空間才能夠開門。

如果要問什麼是鷗翼門的終極形態,那麼就不得不說到特斯拉-MODEL X了,電動開啟的鷗翼門,能夠通過傳感器探知周圍情況,從而調整車門開啟角度,即使是狹窄的空間也能夠開啟車門。

剪刀門一直都是蘭博基尼的慣用伎倆,就像是傳統文化一樣,兩者不可分離。剪刀門改裝文化也十分博大精深,改裝剪刀門也不用付出高昂的費用,所以在很多改裝車展、聚會上都能夠看見。

既像鷗翼門,也像剪刀門,將兩者融合之後,就是蝴蝶門。法拉利的靈魂-法拉利ENZO就是使用蝴蝶門,還有速度怪獸LaFerrari、奔馳SLR、邁凱倫p1。

不知道將科尼賽克-Agera的車門稱之為旋轉式車門合不合適,反正它不是隱藏式,不是對開式,不是鷗翼式,不是蝴蝶門,也不是剪刀門,非常特別,打開車門后,整個車門就像是擰瓶蓋一樣旋轉出來。

雖然這種旋轉式車門不需要很大的垂直空間,但是一定要非常留意橫向空間,千萬不要靠近馬路牙子,因為車門打開后就像是放在地上一樣,離地間隙很小。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

軸距2.7米排量2.0L 最便宜的專車回本神器僅8萬起?_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

89萬軸距:2805mm雖然帝豪EC8的表現不那麼讓人滿意,但是EC8在上市之初還是讓人驚訝了一把,吉利的造車水準越來越好,在EC8那一時期就有所體現,EC8定位中級車,敦實霸氣的外觀甚至有幾分奧迪A8的感覺。2805mm的軸距也是標準的中級車水準。

比亞迪G6

指導價:7.98-11.58萬

軸距:2745mm

比亞迪G6是比亞迪旗下的一款中級轎車,比亞迪作為價格屠夫旗下的車型一直都是十分有性價比的,G6也是很有性價比的一款中級轎車,7.98-11.58萬的售價只有合資中級車的一半左右,但是搭載的2.0L發動機以及各種配置一點都不弱,4860*1825*1463mm的車身尺寸也比較大,視覺效果不錯。

有着龐大的尺寸的比亞迪G6在內部空間上也比較優秀,尤其是後排橫向空間十分寬敞,G6的內飾設計沒有什麼特色,整體屬於比較中規中矩的設計風格,但是儀錶盤設計還是很有比亞迪的特色的。內飾的用料和做工也達到中級車的水準。

納智捷-納5

指導價:8.58-11.98萬

軸距:2720mm

納智捷-納5屬於大緊湊型轎車,全系搭載1.8T發動機,並且軸距也超過了2720mm,但是售價只需要8.58萬起,對於想要購買軸距2700mm以上的,發動機1.8T以上或者2.0L的消費者來說,這款車型也是比較划算的。

納智捷-納5的內飾也是屬於比較有新意的,尤其是儀錶盤的設計,很有科技感,但是閱讀起來需要一定的時間適應,內飾的用料和做工也都不錯。

吉利汽車-吉利EC8

指導價:8.89-11.89萬

軸距:2805mm

雖然帝豪EC8的表現不那麼讓人滿意,但是EC8在上市之初還是讓人驚訝了一把,吉利的造車水準越來越好,在EC8那一時期就有所體現,EC8定位中級車,敦實霸氣的外觀甚至有幾分奧迪A8的感覺。2805mm的軸距也是標準的中級車水準。

EC8的內飾也屬於比較方正的設計,

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

整體內飾十分的好用,但是在內飾造型設計上顯得有點古板了,儀錶盤的樣式也有些過時,不過考慮到這麼大的車這樣的價位,夫復何求呢?

一汽奔騰-奔騰B70

指導價:9.98-14.98萬

軸距:2725mm

奔騰B70的外觀有幾分馬自達的感覺,當然B70本身在底盤等部分也和馬自達有着一定的關係,因此B70的底盤表現比較讓人滿意,作為一台中級車,B70也有着不錯的尺寸,只是2725mm的軸距在中級車中實在拿不出手了。

內飾上B70倒是很有自己的設計,尤其是中控台的造型相當的別緻,在內飾的做工上B70也十分的規整,做工值得表揚,有着大廠風範,儀錶設計比較簡約,但是閱讀起來十分的方便,信息显示也很豐富,頗有幾分日系車的設計思路。

眾泰Z700

指導價:9.98-15.88萬

軸距:3000mm

軸距3000mm的眾泰Z700是一台不折不扣的中大型轎車,雖然尺寸大但是售價仍然十分親民,9.98萬的起售價許多人都可以買得起,但是眾泰的質量一直受人詬病,這款Z700屬於上市不久的新車,質量表現就有待市場檢驗了。

Z700最有爭議的就在內飾設計上,Z700幾乎是原封不動的移植了奧迪A6L的設計,甚至連MMI系統都模仿了,不過對於中大型車來說,尤其是自主車型來說,這樣的設計方法也是最簡單粗暴的。Z700整個內飾可以說豪華和山寨感充斥着,也別有一番風味。

誰說2.0L/1.8T+2700mm以上軸距的車型就很貴呢?其實7.98萬起就能夠買到嘛,自主車總是能夠給我們帶來那麼多充滿驚喜的高性價比產品,這裏衷心地為我們的自主品牌迪鼓個掌,你們說是不是呢?本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

8-15萬選家用高性價比合資車 這兩款車型你絕不能錯過!_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

而雪佛蘭科魯茲由於脫胎於最新的全球化平台,在性能表現尤其突出。動力方面除了最大功率可達84千瓦的1。5L直噴發動機以外,還有着一個動力強勁的1。4T渦輪增壓發動機可供選擇,最大功率可達110千瓦,配合的是7速雙離合變速箱,工信部油耗可以達到5。

科沃茲 or 科魯茲?

在不少人的購車過程中,很多時候會面臨着這樣的局面,“要不要加錢買一款更好的?”的確,在價格相似的情況,而且產品都能滿足自身需要的情況下,要做出選擇是比較困難的。而在最近的後台留言中,不少網友就向反映了這個問題,是應該選擇價格更低的雪佛蘭科沃茲還是加幾萬買更好的雪佛蘭科魯茲?

外觀:科沃茲更沉穩,科魯茲更運動

雖然都採用了家族式的雙格柵設計,但是兩者有着不同的感覺,雪佛蘭科沃茲設計更為中庸沉穩,非常的耐看,車身線條柔和,更顯得平易近人,就像是一個性格溫和友善的務實男人。

同樣的雙格柵設計以及帶LED日間行車燈大燈,但是科魯茲的設計明顯要更為年輕運動,在設計上感覺要比科沃茲要年輕近十年,線條剛勁突顯出肌肉感,銳眼立體式前大燈更為犀利,就像是一個陽剛少年,在西裝下隱藏着一副肌肉身材。

內飾:科沃茲更時尚,科魯茲更顯檔次

科沃茲使用的是懸浮式中控台,色彩艷麗的显示屏就像是懸浮在中控之上,中間連通的整條裝飾條非常搶眼,顯得非常時尚而且有活力。

科魯茲在中控上則是使用着蝶翼式中控,全黑色的設計更顯檔次,更為重要的是在中控下方容易接觸的部分使用軟質的皮革材料,手感更佳,雖然設計相似但在檔次上要比科沃茲高很多。

空間表現:科沃茲處於主流水準,科魯茲准中型車表現

雪佛蘭科沃茲是一副典型的緊湊型車身材,軸距2600mm,處於該級別的中等水平,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

滿足我們一般的家用需要。

而基於全球化平台的雪佛蘭科魯茲在空間表現,不僅超越了科沃茲,而且2700mm在同級別中有着極大的優勢,基本達到了中型車的入門水平,後排空間已經達到闊綽的水平,表現出色。

性能表現:科沃茲不溫不火,科魯茲性能強勁

在性能表現上雪佛蘭科沃茲有着一股“居家男人”范,搭載的1.5L電噴發動機最大功率83千瓦,最大扭矩為141牛米,有着5MT手動變速箱或者6AT自動變速箱的選擇。動力輸出平順,不溫不火,最大的亮點的就是其手動擋5.4L的工信部綜合油耗。在底盤表現上也是同樣的感覺,沉穩有加卻缺乏激情,是一輛以舒適為主的家轎。

而雪佛蘭科魯茲由於脫胎於最新的全球化平台,在性能表現尤其突出。動力方面除了最大功率可達84千瓦的1.5L直噴發動機以外,還有着一個動力強勁的1.4T渦輪增壓發動機可供選擇,最大功率可達110千瓦,配合的是7速雙離合變速箱,工信部油耗可以達到5.7L的超低水平,此外1.4T車型還有着瓦特連桿的幫助,在性能上更優秀,在保持着舒適度的同時還有着不低的運動性能,非常適合科魯茲運動型男的特性。

定位:科沃茲更親民,科魯茲更高端

7.99-10.99萬的價格,雪佛蘭科沃茲在價格上明顯更為親民,這也表現了其國民第一輛家轎的定位,是一款面向家庭的入門級緊湊型轎車,總體上性能中規中矩,均衡的特性卻是非常適合家庭使用。

作為一款“全球平台化”的准中型轎車,10.99-16.99萬的價格確定了雪佛蘭科魯茲有着更高的定位,是一款較高端的緊湊型轎車,所以在性能以及空間表現都要比起科沃茲來得更優秀。高品質的特性確定了它的用戶是注重生活品質的一類年輕人。

編輯總結:

無論是雪佛蘭科沃茲還是雪佛蘭科魯茲,兩者都能很好地滿足我們需求,科沃茲各方面表現中規中矩,但是有着更為親民的價格,更為適合已經組建家庭的用戶選擇。而科魯茲則有着更為年輕動感的外觀、更為強勁的性能表現以及准中型車的空間水平,然而在價格上也是小許上升,所以更適合追求生活品質的年輕人。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

M1 MacBook Air / MacBook Pro / Mac Mini 在台開賣,RAM 升級要 6,000_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

終於,在「效率」上贏得全面優異好評的 Apple M1 晶片 MacBook Air、MacBook Pro 與 Mac mini 在通過 NCC 之後,已經全面在蘋果線上商店開賣。現在購買的話,基本上都能在 1/5 日以前送達消費者手中。至於升級 RAM 與 SSD 的價格也已經正式公佈… 繼續閱讀 M1 MacBook Air / MacBook Pro / Mac Mini 在台開賣,RAM 升級要 6,000 報導內文。

【 購買 M1 MacBook Air(官網) 】

▲圖片來源:Apple

M1 MacBook Air / MacBook Pro / Mac Mini 在台開賣,RAM 升級要 6,000

採用蘋果自家 M1 晶片,全面轉換為 ARM 架構的新世代 Mac 入門產品線,在今天早上已經正式在官方商店開賣。新世代的 M1 MacBook Air、M1 MacBook Pro 與 M1 Mac mini,其實應該不用多作介紹 — 儘管發表會上蘋果一直持續的「快快快」多少,當時還沒太多人相信。

直到正式上市之後才發現,這一系列的入門蘋果電腦產品,居然效能與功耗表現都真的不錯,而且還沒被 Rosetta 2 轉譯拖慢太多速度(!),緊接著各家選擇支援 Apple Silicon 的速度也超乎想像的快。甚至原生支援 ARM 的應用,在效能上更是直逼高階 Intel Mac 產品 — 這裡就不說 Adobe 補刀的故事了(咦)。

這次的 M1 Mac 主要的差異在,相較於另外兩款 MacBook Air 採用的是無風扇的設計(MBA 基礎機型的 GPU 也少 1 核),在長時間高負載的情況下,理論上效能會遜色於搭載風扇的機型。

【 購買 M1 MacBook Pro(官網) 】

是說,既然幾款 M1 Mac 的價格早已公布,這次主要的新消息大概就是升級 RAM 與 SSD 的售價了 — 兩者基本上都是 6,000 起跳;而從 256GB 升級到 2TB 則是價差 NT$24,000;512GB 升級到 2TB 為 NT$18,000。

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

【 購買 M1 Mac mini(官網) 】

延伸閱讀:

HomePod mini 開箱體驗:一顆就能敲開蘋果智慧家門,兩顆更是不嫌多

支援 M1 Mac 的 Windows 虛擬機應用 Parallels Desktop 16 技術預覽版來了

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

海峽兩岸學者講述家文化_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

《回家》 薛仁明 白劍峰著 紅旗出版社

近日,《回家》一書由紅旗出版社出版,作者為台灣作家薛仁明和人民日報高級記者白劍峰。這是海峽兩岸學者首次聯袂出版的“家文化”專著。本書從中華傳統文化的視角解讀了“回家”的內涵和意義。《回家》以家庭為切入點,從飲食男女到四時祭祀,從鄉愁鄉思到祠堂家譜,從居住空間到民俗風情,從家風家教到家國情懷,涵蓋了家庭的方方面面,將中華傳統文化融入日常生活的細節之中,剖析了中國人的文化基因,闡述了中國人的家國情懷。本書分為家居、家祭、家鄉、家庭、家風、家教、家國七章,站在中華幾千年文明的高度,涉及儒釋道及諸子百家,體現了儒家“修身、齊家、治國、平天下”的人生理想。書中有美食的味道,有節氣的韻律,有建築的光影,有祭祀的虔敬,有生死的感悟,有血脈的綿續,有鄉愁的記憶,有夫妻的恩愛,有教子的良方,既是一本中華傳統文化的“濃縮讀本”,也是一本家庭生活的“百科全書”。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

春節從冬至開始_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

晉城麵塑 資料圖片

臘月里蒸麥芽饃 資料圖片

臘月里蒸麥芽饃 資料圖片

過年是從冬至開始的。從冬至到臘八,從臘八到小年,從小年到大年,人們沿襲着祖先傳下來的風俗,操持着,準備着,迎接着,春節的氣氛也在幸福的忙碌中漸漸達到頂點。年俗是文化,也是人情,生生不息,代代相傳。

夫冬至之節,陽氣始萌

“天時人事日相催,冬至陽生春又來。”這是杜甫的七律《小至》的兩句詩。杜工部是對的,春天是隨着冬至來到人間的。

如果認為春節代表春天的到來,那就錯了。其實我們所過的春節僅僅只是春天的一個節日。春節到來的時候,人間早已經屬於春天了。春節只是給了我們一個春天已經來到人間的強烈感覺。或者說,春節只是慶祝春天已經來到人間的一個隆重儀式。

而真正意義上的春天,是從冬至開始的。我們在這裏所說“真正意義”,是指中國古代哲學中的實在意義。我們的先哲們認為,宇宙的萬事萬物無不在陰陽交替、互動、對立、統一中生存和消長。整個世界,是由陰和陽組成的。陰與陽,渾藏於天地間,是中國古代哲學的文化內核。陰與陽也因此易位於冬至和夏至兩個節日之間。夏至之後,日漸短,夜漸長,陰漸盛,陽漸衰,所有事物,所有生命,都在漸趨低谷,即“萬物收斂”。冬至之後,晝漸長,夜漸短,“一天長一線,十天長一截”。然而,冬至過後,天氣會一天比一天冷。從冬至節那一天起,就開始了數九天。“一九二九,關門袖手”“三九四九,凍破碓臼”,天氣的確是越來越冷了。

“夫冬至之節,陽氣始萌。”雖然正值數九寒天,春潮卻在暗中涌動。陽氣在暗中上升,物候的腳步在不知不覺中邁向了春天。春如初胎,從冬至那天起,已經沉靜地安附於大自然的宮室里,正如《西遊記》中邵康節所說:“冬至子之半,天心無改移。一陽初動處,萬物未生時。”“五九六九,沿河看柳。”“七九河開,八九雁來。”“九九加一九,耕牛遍地走。”說明陽氣在暗中悄悄上升,春天在不聲不響走近人間。這一點也被羅貫中寫進了《三國演義》。程昱入告曹操:“今日東南風起,宜預提防。”操笑曰:“冬至一陽生,來複之時,安得無東南風?”把一場赤壁之戰放在冬至,顯得波瀾壯闊,意味無窮。

中國“四大名著”無不拿冬至說事。曹雪芹在《紅樓夢》更是把冬至說到特別:“這年正是十一月三十日冬至。到交節的那幾日,賈母、王夫人、鳳姐兒日日差人去看秦氏,回來的人都說:‘這幾日也沒見添病,也不見甚好。’王夫人向賈母說:‘這個癥候,遇着這樣大節不添病,就有好大的指望了。’”說明冬至是個不同尋常節令,不光宇宙間萬物在蘇醒、發生、成長,就連病疽疾癘也一樣不會放過其生命活躍起來的機會。

《水滸傳》似乎沒有必要寫到冬至,但施耐庵並沒有放過這一個重要節點:“聞知今上大張燈火,與民同樂,慶賞元宵。自冬至后,便造起燈,至今才完。”我們先不說作者在敘事中來上這麼一筆的用意是什麼,施耐庵給了我們一個信息:春節乃至元宵節都是從冬至開始的。

其實春節不只是從冬至開始的,春節在中國古代與冬至是並肩同行的。

《詩經·七月》:“七月流火,九月授衣。一之日觱發,二之日栗烈。無衣無褐,何以卒歲?三之日於耜,四之日舉趾。”“一之日”是周曆和豳歷的正月。而周曆和豳歷的正月正是夏曆的十一月,就是我們現在所過的冬至的月份。而今的冬至在十一月末,或十二月初,春節則在正月初一,之間相隔時間近一個月,這並不是春節與冬至分道揚鑣,而是我們選擇了夏曆,即農曆。所以,春節是從冬至開始的,有它的歷史淵源,也有它的文化根據。

摔老南瓜

今天,儘管春節姍姍來遲於冬至之後,但人們並沒有忘記春節是從冬至開始的。尤其是在我的家鄉晉東南,依然回蕩着歷史的流響餘韻,也總是忘不了想方設法給冬至塗上一點文化色彩,讓冬至節沉染在豐富的文化意蘊中。

冬至節的五更天,天還不明,就能聽到各家各戶“嗵嗵”的響聲傳出來。那是家家都在摔老南瓜。秋天收穫老南瓜的時候,家家都要挑好的大的收藏起來,等到冬至的五更天,把老南瓜從架上取下來,抱到炕頭上,高高舉起,重重地摔到地上,南瓜子濺得到處都是。驚醒的孩子們會問父母,冬至為什麼摔老南瓜?父母會告訴孩子們冬至摔老南瓜的故事:

傳說有人要在冬至那天夜裡刺殺孔子,藏匿孔子那一家人,暗中放走了孔子,在孔子睡覺的枕頭上放了個老南瓜,用被子蓋上,偽裝成孔子正在睡覺。刺客夜入寢室,舉刀便砍,只聽“咔嚓”一聲,半個老南瓜“嗵”的一聲滾落到地上,刺客以為大功造成。於是,冬至摔老南瓜就成了祀孔的一種特殊形式。

冬至節,村子里和小學校也要祀孔。冬至那天學校放假一天,說是放假,學生並不離開學校,只是不準翻書而已。意思是,翻書會迷了孔夫子的眼。學生要穿上新衣,跟着村幹部和老師攜酒脯祀孔。祀孔結束后,村幹部陪老師吃油疙麻雜燴菜,學生回家吃餃子。我們把餃子叫“凍耳朵”,意思是,吃了凍耳朵,耳朵不怕凍壞。

冬至摔成碎塊的老南瓜,可以煮成“紅小豆老南瓜”吃。色質特別好的,留給“五豆”和“臘八”。臘月初五是“五豆節”,小節。家家吃紅豆小米撈飯,即用紅豆和小米一起燜的乾飯。五豆是冬至到臘八的一個小小跳板。

臘八粥

臘月初八,家家吃“臘八粥”。

“粥”是外鄉人的叫法,我們不叫粥,實質上也不是粥。我們叫黏米飯,也叫黏飯,又叫甜飯,實實在在的“飯”,能夠用筷子夾起來的。黏米與小米顏色一樣,黃燦燦的,顆粒大小也相同,外地人用眼睛是分辨不出來的。黏米做成的“黏米飯”特別“黏”,特別香。

臘月初七晚上,母親就要煮紅豆。紅紅的蘭花炭火,煮豆的鍋在火上嘩啦嘩啦響,孩子們的夢裡也是黏米飯香。

半夜時分,豆子煮熟了,母親會將老南瓜、黏米、紅薯、紅棗、核桃、柿餅、柿圪蓮,花生、紅糖、白糠等依次入鍋。什麼東西什麼時間放,既不能早,也不能遲。比如花生,早了不脆,遲了不熟;比如柿餅柿圪蓮,時間不對,不但不甜,還會發澀。做黏米飯最好用砂鍋,攪黏米飯最好用木板。用鐵傢伙做出來的黏米飯顏色不鮮明,吃起來味道也不對。對着黏米飯鍋不能說話,不能咳嗽,如果把唾沫星兒噴到黏米飯里,黏米飯就會“涎”成米是米、水是水,不融和,也不黏稠。

早晨,軟米飯做好了,各家各戶要相互饋贈。送贈黏米飯的任務大都是孩子們的事。一碗碗紅紅的黏米飯,像一盞盞的小紅燈籠,像一捧捧的火焰,像一朵朵鮮艷的花,在飛雪中,在白雪皚皚的大街小巷裡,燃燒,跳躍,綻放,如竄梭一般地來來去去。每碗黏米飯都是滿滿的,偶爾會滴一點在雪地上,像掉在雪地上的一塊紅紅的火炭,像一枝火的花朵,讓雪天顯得溫暖,讓雪天顯得爛漫,點燃着鄉村裡永遠的鄉愁。

家家戶戶都做黏米飯,家家戶戶相互饋贈,那是一種風俗。你送我一碗,我送你一碗,“親戚箢還箢,鄰家碗還碗”。那是鄉里鄉親熱絡感情、鞏固關係的一種最簡單、最樸素的一種方式。千年不變,也不應該變。

學生都要給老師送軟米飯,老師收很多黏米飯,凍起來,天天拿鏊子焐着吃,放一點油,焐出一層薄薄的皮,又香又甜,天下風味。

也有送黏米飯給村子里的藥鋪商鋪的,藥鋪商鋪也會準備一些核桃、紅棗、花生、柿餅之類回贈。

為什麼要吃臘八粥?為什麼要吃黏米飯?歷來傳說不一。但最好緣由應該是紀念佛祖成道日,效法牧女獻乳糜於佛的故事。不過,這也是人們賦予臘八節的一種文化色調。我看,其蘊包含在《詩經》里。

《詩經》有言:“物其多矣,維其嘉矣。物其旨矣,維其偕矣。物其有矣,維其時矣。”冬至時節,乃至整個臘月天,各種糧食果蔬藏儲豐富,是乃“物其多矣”“物其旨矣”“物其有矣”;選擇節日,如冬至、五豆、臘八、小年,做成合節的諸如黏米飯、豆撈飯、火燒之類的飯食,乃是“維其嘉矣”“維其偕矣”“維其時矣”。也就說,臘八吃黏米飯才有臘八氣氛,才是臘八的味道。也如八月十五吃月餅,三月三吃春餅,端午節吃粽子,此即“物其有矣,維其時矣”。

冬至說儒,臘八說佛,小年以至大年,就應該說“道”了。佛、儒、道,三家文化,融化了我家鄉的臘月天。

過了臘八,接着就是小年。臘月二十三,祭灶的日子到了。

祭灶祭哪個?祭祝融。《周禮》說:“顓頊氏有子日黎,為祝融,祀以為灶神。”漢之後,灶王爺掌握了人們的禍福、壽夭,出現了“灶神晦日歸天,白人罪”的說法。人們小心奉祀灶君,傳說灶君每年臘月二十三都要到天帝那兒去陳說人間的善與惡,因此各家各戶要為灶王爺送行,打些火燒給灶爺做乾糧,弄些麩皮草料給灶爺秣灶馬,在火口上塗些糖餳給老灶爺糊嘴巴,好讓老灶爺到天帝那兒多說好話,把天帝所降的吉祥帶回人間。

“二十三祭罷灶,夾上包袱往回趵。”住在娘家的媳婦,祭過灶之後,就該回到婆婆家準備過年了。

“好了!好了!到跟前兒都好了!”

過了冬至節,男人們忙着殺豬,宰羊,割肉,買菜,辦年貨。女人碾米,磨面,扯布,買衣線,做新衣,做新鞋。過了臘月二十三,就要掃屋子,做豆腐,坐蒸鍋,蹲油鍋。

晉城不缺香炭,火邊圍一圈香炭,把火燒得旺旺的,女人們各顯身手,蒸棗山、棗供、棗花、豬、羊、小兔兒、小魚兒、小刺蝟,炸菱花、饊花。所蒸所煮,都是敬神的供品。棗山像個大青蛙,背上許多面花兒。每朵花上都有一個紅棗,看起來像一朵盛開的大紅花。雜獻只是一個大饅頭,上邊摞幾層面花兒,最上面安一個大紅棗。比雜獻小一點的叫棗花兒,只有一層花,花上邊只是一個酸棗。棗山和雜獻上的花兒,有盤花,有剪花。盤花像牡丹,剪花像菊花。把筷子頭破開,析出一朵“小梅花”。在小小的瓷碟子里化一點品紅,把“小梅花”在品紅里蘸蘸,在棗山和雜獻上點上朵朵小梅花。將高粱秸破成兩半,摳去瓤子,便成為一個彎彎的月牙。把月牙兒蘸一點品綠,在“小梅花”的四角點四片,好花有了綠恭弘=叶 恭弘扶持,所有的獻供便飛一片春色。每朵花都有兩層三層,看上去重重疊疊,有點“層巒聳翠”的意思。

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

給女兒女婿蒸兩個大口禮饃,個子比頭盔大。把揉好的面用細繩從頂向下勒一個十字,蒸熟的口禮饃如四瓣盛開的花朵,點綴上品紅品綠,顯得喜氣洋洋,一片祥和。

給自己家裡每個人蒸一個“人口禮饃”,其中一個裡邊放個“制錢”,其餘放上一個紅棗。初七人日,誰拿到放“制錢”的口禮饃,誰運氣就是最好的,福氣也是最大的,大事小事都會成為家裡的靠山。

煮一鍋玉茭豆兒,蒸些豆餡饃、菜餡饃。從初二到初五,每天早晨喝玉茭豆兒,吃餡饃。

為了一個年節,家家戶戶都會忙得團團轉,腳步總是匆匆的。人與人見了面總要關切地問一聲:“準備好了嗎?”總是笑着回答:“好了!好了!到跟前兒都好了!”

洗了澡,理了發。糊了窗戶,架起正火。貼上對聯,掃了院子,就到大年三十了。

“二十三日去,初一五更回”

三十的晚上,家家戶戶吃“面恭弘=叶 恭弘”。脫玉茭、大白菜、紅蘿蔔、豆腐、豆芽,一鍋煮熟。寬寬的麵條,不放蔥蒜,只放花椒,因為要獻祖先。先盛一碗獻祖宗。燃上一炷香,大門口放三個炮,接祖宗回家過年,祖先就會跟着香煙走進大門,走進屋門。祖先畢竟是泉鄉之物,沒有香煙引路,門神不會放祖先進入家門。

把祖先請到祖先桌上,給祖先獻上一碗面恭弘=叶 恭弘,俗稱“爺奶奶湯兒”,讓祖宗先喝口湯,歇歇氣,等五更天敬神時,再給祖宗上獻。

從臘月二十三到年三十,人間是沒有神的,諸神都到天帝那裡參加年會了。這一段時間,人間是無忌諱的,人們可以為所欲為,特別是結婚辦喜事,不用“擇好兒”,想哪天辦就哪天辦。

臘月三十,祖宗也回來了,家人與祖宗一起,早早就要睡覺了。睡覺時放一個“關門炮”,說明這一年已經過完了,關門了,再開門的時候就是春節了。

神回到人間的時間,是正月初一的五更天,是所謂的“二十三日去,初一五更回”。初一五更,起床先放一個開門炮,春節的大門從此就打開了。

不論農家、官家與商家,不論窮家與富家,家家供奉灶爺,供奉天地爺、家堂老爺、財神爺,其他便不相同了。有的家庭供奉不知名姓的神仙,總稱仙家老爺。很多人家都供奉佛爺,讀書人供奉孔夫子,木匠供奉魯班,鐵匠供奉老君。

其實行走在我們桑梓間的不止佛、儒、道,還有天地、山神、龍王、馬王、牛王、青龍、白虎、紫姑、門神、樹神、花神、五道神、土地神,等等。當然,林林總總的神仙,也都出身於道家,平時不聞不問,過年時,不知道從哪裡蹣跚走來,在一元始旦,萬象更新,人世間充滿歡樂充滿希望的時候,同眾庶一起歡度春節,增加節日的氣氛,也讓人們的心靈有所依傍,靈魂有所棲止,精神有所寄託。

初一五更,點正火,接神,焚香。天地爺自是“滿斗焚香”,一炷炷的單香插得如滿天星斗。其他佛家道家的神仙都是三炷香,或者一炷整香。祖先不是神,所以不可與神一起受享獻饗。各種獻供只能等敬罷神,酌回來才能獻給祖先享用。

正火點着之後,青煙裊裊,火光衝天,火星直冒,紅光滿園,柏樹枝的香氣格外讓人心清氣爽。孩子們會圍着正火又跑又跳,又喊又笑,小臉一張張映得通紅,朝氣與喜氣沖溢在整個院子里。焚香的同時放鞭炮,孩子們手裡會提個小小的紅燈籠,到處搶鞭炮。大人們會告訴孩子,大年初一去抱住大椿樹,高聲喊:“椿樹娘,椿樹娘,你長高了做大梁,我長高了領衣裳。”希望椿樹帶領孩子與孩子一起長高。

初一五更,男人敬神,女人打火做飯。大年初一早晨多有吃拉麵的,意思全家互相拉着點,拉緊點,不要丟了一個,不要少了一個。女人拉麵,男人批蒜苗。白生生的面,拉得又長又細。頭一碗先送本院鄰居,鄰居也會送一碗過來,是鄰裡間年節時的一種交往。

吃過飯,父母要給孩派壓歲錢,還要教孩子怎麼拜年。同輩人見了面,也要互相說一聲:“拜年了!”“春節好!”“恭喜發財!”村子上的老會頭要飾鑼集中八音會,耍會,唱戲。

初五晚上要送祖先。端上半碗爺奶奶湯,燃上一炷香,隨着香煙裊裊,把祖宗送到大門口,放三個炮,年節基本就結束了。

元宵拱燈棚

說是年基本結束了,就是還沒有完全結束。還有個正月十五鬧元宵。

掛燈是我們家鄉一個古老的傳統,不僅家家門口掛燈,整個村子里也掛燈。我們村裡有好幾百對花燈,全部掛在後街上。後街從東到西二里長,燈棚用紅、黃、藍三色小布編成小方花格子作燈棚,把燈並排掛在燈棚下,橫看是一對一對的,順着街道看過去,像兩條火龍,從東頭一直蜿蜒到西頭。

吃晚飯時,鑼聲一響,人們都知道,要髮蠟了。二里長街,分段管理,負責髮蠟。髮蠟,就是點燃蠟燭的意思。蠟燭是用羊油掂的。熬上一大鍋羊油,把棉花做成的燭芯纏在蠟柱上,往大鍋里一沾一掂,反覆多次,便掂成一支蠟燭。白蠟是本色,紅蠟是添加了顏料。紅蠟白蠟都搖紅,把一條長街搖得輝煌壯麗。

蠟是年年要掂的,燈也是年年要掛的。即使最困難時期,也沒有停了掛燈。人們說:“討吃看煙火,肚飢眼歡樂。”可以不吃飯,卻不能不掛燈,好不容易又一年了。也許是想證明人這一年又活過來了。

燈棚下每隔十來步就有一爐正火。燒正火用的是香煤香炭,也叫蘭花香炭,也叫白煤,傳說是英國女王燒壁爐必用之物。燒正火不能用臭炭,否則會嗆得人打噴嚏,既出洋相,又不吉祥。

傍晚時分,把大塊的蘭花香炭添足,正火很快就燒起來,一堆火焰熊熊,一堆金光燦爛。天上月光,棚下燈光,街邊火光,加上社鼓笙簫,一派金碧輝煌。

後街的燈全是紗燈,繪有《三國演義》《封神榜》《水滸傳》人物情節。觀燈的人從燈棚下拱來拱去,拱燈棚大都是年輕人。拄着棍子的老人,引着孫兒老叟,傴僂着腰的老嫗,把孩子架在膀子上的父親,梳了圓頭的母親,大都圍在燈棚下,每盞燈下都會圍一個圈,仄着耳朵,聽老人們說些三國水滸的故事。

年輕人很少站在燈棚下看那些老故事。他們有自己的故事。“月上柳梢頭,人約黃昏后”,是他們故事的藍本。他們總是以“拱燈棚”,演繹他們的故事。

“拱燈棚”是小鎮一個古老的風俗。按風俗,不管男女老少,正月十五拱燈棚會吉祥如意,會免除許許多多的大災小難。

不管是男孩子還是女孩子,他們總是三個一群兩個一夥,貌似看燈,卻心不在焉。

女孩子們總手拉着手“拱燈棚”。從東頭拱到西頭,再從西頭拱到東頭。人前,不管內心多麼豐富,表面都是很文靜的,悄悄謐謐的,總是很害羞的樣子。如果不得不笑,也只是趕緊把嘴捂住,彎下腰,或者背過身,悄抿了嘴,齒頰之間發出一點吹涼風一樣的“噝噝”聲。當然,有時候也難免會笑出聲來,無非是忽然想起了,或者忽然看到了可笑的人和事,實在是忍不住了,就笑出來。一個人“疙啼”一聲,會傳染女孩子們無端“疙啼疙啼”笑成一堆。

有話說的時候,也只是悄聲細語,低聲喁喁。心裏卻熱烈。本來是三個兩個相跟着,牽着手,卻不知道什麼時候就少了一個。不知道其中哪個女孩什麼時候就拱出了燈棚,拱到了月光照不到,燈光也照不到的地方去了。

當然,過來人都知道,那燈火闌珊的角落有女孩子和男孩子的故事。他們知道,入春了,驚蟄了,野草也該句萌了。

藿谷洞的燈與後街不同,藿谷洞的燈不是為大眾看的,是專奉“四奶奶”即送子娘娘的,觀燈的人大都是母親或祖母,因此藿谷洞的燈上沒有故事,燈下也沒有故事,很雅靜,很純凈,很雅緻,雅緻到脫俗。燈的形式也很單純,一式宮燈,兩種燈罩。布罩和玻璃。布罩是綠裙紅褲,很鮮艷;玻璃罩繪有梅、蘭、竹、菊,石榴,荷花,魚兒,鳥兒,題些“玉燭豐年”“雨暘時若”“天地交泰”的文字。品位很高,有一點閨閣氣。倘若天空中有雪花飄下來,那才是真正的天上人間。後街的燈如果代表“俗”,那麼藿谷洞的燈就是一個“雅”。從後街到藿谷洞,就是一個雅俗共賞。

藿谷洞長不足百步,南瀕大箕河,北出後街。南北街口各有一爐正火,助“四奶奶”看烘火,供祖母或母親們熏手熏腳。母親們和奶奶們常常會搬個椅子或板床,穩穩噹噹坐在正火跟前,一邊烤火,一邊陪着“四奶奶”看燈。

俗話說三個女人一台戲,但那時候的女人卻沒戲,既不調笑,也不說穢語。所有的奶奶和母親們絕不開玩笑的。她們的心那時候是非常虔敬的,是懷着無限神聖的。她們心中的“四奶奶”就在燈下,護佑着他們的兒孫。不管誰家裡的孩子,都是四奶奶殿里來的,都是四奶奶的侍兒。四奶奶是鄉村女人們心中最可愛,最可敬,最可親,最嚴肅的一位女神。她們會拿五色紙給四奶奶糊些被子褥子、衣裳、鞋襪。四奶奶應該是三寸金蓮,因此那鞋也糊得小辣椒一樣,很俊,很俏。除了鋪、蓋、穿、戴,還要給四奶奶上“銀兩”,即錫箔之類。

供品是“桃”。面蒸的,洋紅洋綠點綴些花恭弘=叶 恭弘,給人的感覺是喜氣盈盈,這叫“壽桃”,是寶塔狀的。還有“油桃”,偏形的,卧式的。蒸熟之後,在鍋里放點油,燒熱,把“桃”背在油鍋里擦一擦,又香又好看。最簡單最聖潔的供品是“香米茶飯”。名字看上去太詩意了!把小米炒開花,放點水,熗一下,用酒盅一盅一盅扣在盤子里,像一個個小沙包。

祖母和母親們在用心觀燈。那綠褲紅裙之間所包含的,那玻璃罩所罩的,是仙緣,是仙機。她們在和“四奶奶”一起度過元宵,她們在恬靜中陪伴着她們心中的“四奶奶”。她們也知道“四奶奶”不是世界上最高和最有權威的神或仙,但“四奶奶”最喜歡孩子,是一位慈祥的奶奶。為了孩子,為了孫子,她們願意那麼陪着。那樣陪着,她們的心裏是安定的,是穩貼的。她們的內心永遠有那麼一團神聖。“漠虛靜以恬愉兮,澹無為而自得。聞赤松之清塵兮,願承風乎遺則。貴真人之休德兮,美往世之登仙。”這才是她們的真心,雖然她們並未讀過《楚辭》。

掛起燈的時候,能有雪花飄落,那是再美不過了。那叫“瑞雪兆豐年”,最富詩意。

到此,年就算完全結束了。“九九加一九,耕牛遍地走”,到一心一意種莊稼的時候了。

(作者:卓 然,系山西省晉城市作協名譽主席)

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

容器技術之Dockerfile(一)_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

  在前邊的隨筆中我們聊到了docker的基本命令,鏡像,網絡,存儲卷以及基於現有容器製做docker鏡像,相關隨筆可參考https://www.cnblogs.com/qiuhom-1874/category/1766327.html;今天我們來聊一聊docker的另一個製作鏡像的方式dockerfile;

  什麼是dockerfile?所謂dockerfile就是用來描述docker鏡像製作過程的一指令文件;該文件是一個純文本文件,docker Daemon 進程可以從該文件中讀取指令,從而自動生成鏡像;客戶端可以使用docker bulid命令來指定dockerfile 所在目錄,來生成以dockerfile里描述的鏡像構建過程的鏡像;

  首先我們來了解下dockerfile的格式,dockerfile是一個純文本文件,我們可以理解為構建鏡像的源碼;不同於其他編程語言,dockerfile里沒有if else 沒有循環,它裏面僅僅有註釋和構建鏡像的指令;對於dockerfile註釋就是以井號開頭的行為註釋,這個和shell和其他配置文件的語法一樣;除此之外dockerfile里就只有指令了;嚴格的講指令是不區分字符大小寫的,通常我們約定俗成指令都是純大寫;除此之外在dockerfile的第一非註釋行必須是FROM開頭來明確的說明我們在基於那個鏡像為基礎鏡像做鏡像;

  通常情況下dockerfile是放在一個目錄下,該目錄就是dockerfile的工作目錄,我們在製作鏡像所依賴的文件都必須放在該目錄下,而dockerfile的名稱也必須是Dockerfile(首字母大寫,名稱必須是Dockerfile),如果我們依賴的文件是一個目錄下的部分文件,我們也可在dockerfile所在目錄創建一個.dockerignore文件,把我們要忽略的文件名稱寫到裏面即可,該文件支持通配符;

  了解了上面的dockerfile的基本環境結構,接下來我們來說說dockerfile的指令的用法;

  1、FROM:用於指定所創建鏡像的基礎鏡像,如果本地不存在,默認會從dockerhub中下載;該指令是dockerfile里的第一個非註釋行的指令;語法格式 FROM <repository>[:<tag>] 或者FROM <repository>@<digest>  其中repository是指定的base 鏡像的名稱 <tag>是base 鏡像的標籤為可選項,不指定標籤默認表示使用指定鏡像的latest版本;

  2、MAINTAINER:用於指定維護者信息,dockerfile並不限制MAINTAINER指令可出現的位置,通常我們建議將該指令放在FROM之後;語法格式 MAINTAINER <authtor’s detail>, <author’s detail>可是任何文本信息,但約定俗成地使用作者名稱及郵件地址;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"


[root@node1 test]# 

  提示:通常我們都不用MAINTAINER來指定作者信息,該指令幾乎是廢棄狀態,建議使用LEBEL指令來指定;

  3、LABEL:該指令用於指定添加鏡像的元數據信息;語法格式為LABEL <key>=<value> <key>=<value> <key>=<value> …;如果添加的元數據信息值中有空格,我們需要使用引號和反斜線進行命令行解析;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."


[root@node1 test]# 

  提示:LABEL指令可以使用多次,用於添加更多的元數據信息;

  4、COPY:該指令用於從Docker主機複製文件至創建的鏡像文件中;語法格式 COPY <src> … <dest> 或 COPY [“<src>”,… “<dest>”];<src>表示要複製的源文件或目錄,支持使用通配符;<dest>表示目標路徑,即正在創建的image的文件系統路徑;建議為<dest>使用絕對路徑,否則,COPY指定則以WORKDIR為其起始路徑;注意:在路徑中有空白字符時,通常使用第二種格式;

  文件複製準則

  1、<src>必須是Dockerfile所在目錄中的文件,不能是其父目錄中的文件;

  2、如果<src>是目錄,則其內部文件或子目錄會被遞歸複製,但<src>目錄自身不會被複制;

  3、如果指定了多個<src>,或在<src>中使用了通配符,則<dest>必須是一個目錄,且必須以“/”結尾;

  4、如果<dest>事先不存在,它會被自動創建,則包括其父目錄路徑;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

COPY html /var/www/html/

COPY test.html /tmp/
[root@node1 test]# tree
.
├── Dockerfile
├── html
│   ├── test1.html
│   └── test2.html
└── test.html

1 directory, 4 files
[root@node1 test]# 

  測試:我們基於上面的Dockerfile構建鏡像,看看構建好的鏡像是否把對應文件都複製到對應目錄下了?

[root@node1 test]# ls
Dockerfile  html  test.html
[root@node1 test]# pwd
/root/test
[root@node1 test]# docker build . -t myimg:v0.1
Sending build context to Docker daemon  5.632kB
Step 1/6 : FROM busybox:latest
latest: Pulling from library/busybox
d9cbbca60e5f: Pull complete 
Digest: sha256:836945da1f3afe2cfff376d379852bbb82e0237cb2925d53a13f53d6e8a8c48c
Status: Downloaded newer image for busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Running in c311afd3d522
Removing intermediate container c311afd3d522
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Running in 2ffb577afa08
Removing intermediate container 2ffb577afa08
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Running in 489165bad668
Removing intermediate container 489165bad668
 ---> 994f06ff65f8
Step 5/6 : COPY html /var/www/html/
 ---> f2b46094d9a9
Step 6/6 : COPY test.html /tmp/
 ---> c78c7188f804
Successfully built c78c7188f804
Successfully tagged myimg:v0.1
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.1                c78c7188f804        8 seconds ago       1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# 

  提示:可以看到docker在讀dockerfile時會把一條指令啟動一容器來執行,然後每一條指令都會構建成一層鏡像;如果我們本地倉庫中沒有我們指定的基礎鏡像,它默認會從dockerhub倉庫中去把指定鏡像拖到本地;docker build命令是用來基於dockerfile來製作鏡像的命令,其中-t表示指定我們生成的鏡像的標籤信息;

  運行我們剛才製作好的鏡像,看看我們的指定的目錄和文件是否都複製到指定鏡像中的目錄中去了?

[root@node1 test]# docker run --name test --rm -it myimg:v0.1 /bin/sh
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
/ # ls /var/www/html/
test1.html  test2.html
/ # ls /tmp/
test.html
/ # cat /var/www/html/test1.html 
this is test1 html
/ # cat /var/www/html/test2.html 
this is test2 html
/ # cat /tmp/test.html 
this is test dir html
/ # exit
[root@node1 test]# 

  提示:可以看到我們以剛才製作的鏡像運行成容器,容器對應目錄有我們指定複製的文件;
  5、ADD:該指令類似於COPY指令,ADD支持使用TAR文件和URL路徑;語法格式 ADD <src> … <dest> 或 ADD [“<src>”,… “<dest>”];如果<src>為URL且<dest>不以/結尾,則<src>指定的文件將被下載並直接被創建為<dest>;如果<dest>以/結尾,則URL指定的文件將被直接下載並保存為<dest>/<filename>;如果<src>是一個本地系統上的壓縮格式的tar文件,它將被展開為一個目錄,其行為類似於“tar -x”命令;然而,通過URL獲取到的tar文件將不會自動展開;如果<src>有多個,或其間接或直接使用了通配符,則<dest>必須是一個以/結尾的目錄路徑;如果<dest>不以/結尾,則其被視作一個普通文件,<src>的內容將被直接寫入到<dest>;

  示例:

[root@node1 test]# ls
Dockerfile  html  nginx-1.19.0.tar.gz  test.html
[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

COPY html /var/www/html/

COPY test.html /tmp/

ADD http://nginx.org/download/nginx-1.18.0.tar.gz /usr/src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]# 

  提示:以上Dokcerfile里指定把當前目錄下的nginx-1.19.0.tar.gz 添加到鏡像中的/tmp/下,並且會把nginx-1.19.0.tar.gz展開成一個目錄;而對於

ADD http://nginx.org/download/nginx-1.18.0.tar.gz /usr/src/這條指令它會把指定url的文件下載到/usr/src/,但是不會tar文件展開;

  測試:把上面dockerfile編譯成鏡像,看看對應目錄中的文件是否都展開了?

[root@node1 test]# docker build . -t myimg:v0.2
Sending build context to Docker daemon   1.05MB
Step 1/8 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/8 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/8 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/8 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/8 : COPY html /var/www/html/
 ---> Using cache
 ---> f2b46094d9a9
Step 6/8 : COPY test.html /tmp/
 ---> Using cache
 ---> c78c7188f804
Step 7/8 : ADD http://nginx.org/download/nginx-1.18.0.tar.gz /usr/src/
Downloading   1.04MB/1.04MB
 ---> 23f47a028853
Step 8/8 : ADD nginx-1.19.0.tar.gz /tmp/
 ---> 6ba2693b3084
Successfully built 6ba2693b3084
Successfully tagged myimg:v0.2
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.2                6ba2693b3084        27 seconds ago      8.54MB
myimg               v0.1                c78c7188f804        25 minutes ago      1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.2 /bin/sh
/ # ls /usr/src/
nginx-1.18.0.tar.gz
/ # ls /tmp
nginx-1.19.0  test.html
/ # exit
[root@node1 test]# 

  提示:從上面的信息可以看到,在容器中的/usr/src/目錄下nginx-1.18.0.tar.gz並沒有展開,而在/tmp/下卻把niginx-1.19.0.tar.gz展開為nginx-1.19.0;從build的過程來看,除開後面的ADD過程,其他過程都很快,並且明確告訴我們使用了cache,則意味着在本地倉庫中有的鏡像層,默認是共享的;

  6、WORKDIR:該指令用於設定Dockerfile中所有的RUN、CMD、ENTRYPOINT、COPY和ADD指令的工作目錄;一個Dockerfile中可以多次使用WORKDIR來指定當前WORKDIR指令到下一個WORKDIR指令之間的指令的工作目錄;語法格式WORKDIR <dirpath>;在Dockerfile文件中,WORKDIR指令可出現多次,其路徑也可以為相對路徑,不過,其是相對此前一個WORKDIR指令指定的路徑,另外,WORKDIR也可調用由ENV指定定義的變量;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

WORKDIR /var/www/

COPY html html/

COPY test.html /tmp/

WORKDIR /usr/

ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]# 

  提示:我們在dockerfile中指定了workdir的路徑后,其後的指令就可以以上一個workdir指定的路徑 為基準後面使用相對路徑;

  測試:製作鏡像運行容器,看看是否把對應文件都添加到容器的指定目錄里?

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

WORKDIR /var/www/

COPY html html/

COPY test.html /tmp/

WORKDIR /usr/

ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]# 
[root@node1 test]# docker build . -t myimg:v0.3
Sending build context to Docker daemon   1.05MB
Step 1/10 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/10 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/10 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/10 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/10 : WORKDIR /var/www/
 ---> Running in 623002a4c418
Removing intermediate container 623002a4c418
 ---> 7e6898b36dd5
Step 6/10 : COPY html html/
 ---> 57ff5a48a104
Step 7/10 : COPY test.html /tmp/
 ---> f66a1bf4040a
Step 8/10 : WORKDIR /usr/
 ---> Running in b905ff1b4529
Removing intermediate container b905ff1b4529
 ---> 1fdceb9a6bfd
Step 9/10 : ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/
Downloading   1.04MB/1.04MB
 ---> 92868df29f5b
Step 10/10 : ADD nginx-1.19.0.tar.gz /tmp/
 ---> 68161c3beb90
Successfully built 68161c3beb90
Successfully tagged myimg:v0.3
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.3                68161c3beb90        11 seconds ago      8.54MB
myimg               v0.2                6ba2693b3084        18 minutes ago      8.54MB
myimg               v0.1                c78c7188f804        43 minutes ago      1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.3 /bin/sh
/usr # pwd
/usr
/usr # ls 
sbin  src
/usr # ls src/
nginx-1.18.0.tar.gz
/usr # ls /tmp/
nginx-1.19.0  test.html
/usr # ls /var/www/
html
/usr # exit
[root@node1 test]#

  提示:可以看到我們製作的鏡像啟動為容器后,默認是我們指定的最後一個workdir的路徑;

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

  示例:使用環境變量指定workdi的路徑;

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ENV webhome="/var/www/" src_home="/usr/"


WORKDIR $webhome

COPY html html/

COPY test.html /tmp/

WORKDIR $src_home

ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]#

  提示:我們在原有的Dockerfile中添加了ENV webhome=”/var/www/” src_home=”/usr/” 表示添加兩個環境變量,而這兩個環境的變量的值分別是“/var/www/” 和“/usr” 這樣一來,在後面workdir引用該環境變量時 就會把對應的值給替換過去;dockerfile中變量引用同shell中的變量引用一樣都是使用$符合引用變量;

  測試:利用上面的Dockerfile編譯成鏡像,然後運行成容器,看看我們在dockerfile中定義的環境變量是否能夠被容器所引用?

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.3                68161c3beb90        34 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        53 minutes ago      8.54MB
myimg               v0.1                c78c7188f804        About an hour ago   1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . -t myimg:v0.4
Sending build context to Docker daemon   1.05MB
Step 1/11 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/11 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/11 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/11 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/11 : ENV webhome="/var/www/" src_home="/usr/"
 ---> Running in 82738c50a595
Removing intermediate container 82738c50a595
 ---> 9f089c14778f
Step 6/11 : WORKDIR $webhome
 ---> Running in 3e9d7d4276bf
Removing intermediate container 3e9d7d4276bf
 ---> 94e17268d7ea
Step 7/11 : COPY html html/
 ---> cf3be18998db
Step 8/11 : COPY test.html /tmp/
 ---> 3b81cb058412
Step 9/11 : WORKDIR $src_home
 ---> Running in 70478cb9d405
Removing intermediate container 70478cb9d405
 ---> e0d8ab9331f4
Step 10/11 : ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/
Downloading   1.04MB/1.04MB
 ---> b4e546989783
Step 11/11 : ADD nginx-1.19.0.tar.gz /tmp/
 ---> df3d040b5766
Successfully built df3d040b5766
Successfully tagged myimg:v0.4
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.4                df3d040b5766        4 minutes ago       8.54MB
myimg               v0.3                68161c3beb90        41 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        59 minutes ago      8.54MB
myimg               v0.1                c78c7188f804        About an hour ago   1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.4 /bin/sh
/usr # pwd
/usr
/usr # ls /var/www/
html
/usr # ls /usr/src/
nginx-1.18.0.tar.gz
/usr # 

  提示:可以看到我們指定的ENV環境變量是能夠被WORKDIR說引用

  7、ENV:用於為鏡像定義所需的環境變量,並可被Dockerfile文件中位於其後的其它指令(如ENV、ADD、COPY等)所調用;調用格式為$variable_name或${variable_name};語法格式ENV <key> <value> 或 ENV <key>=<value> …;第一種格式中,<key>之後的所有內容均會被視作其<value>的組成部分,因此,一次只能設置一個變量;第二種格式可用一次設置多個變量,每個變量為一個”<key>=<value>”的鍵值對,如果<value>中包含空格,可以以反斜線(\)進行轉義,也可通過對<value>加引號進行標識;另外,反斜線也可用於續行;定義多個變量時,建議使用第二種方式,以便在同一層中完成所有功能;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ENV web_home="/var/www/html/"

COPY html ${web_home}


[root@node1 test]# 

  提示:上面Dockerfile設置了環境變量web_home=”/var/www/html” ,後面的COPY引用時直接使用${web_home}即可;COPY html ${web_home}表示把html目錄中的文件複製到web_home這個變量所指定的目錄中,即/var/www/html/;

  測試:編譯成鏡像,看看是否把對應html目錄下的文件複製到/var/www/html/目錄下了?

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.4                df3d040b5766        17 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        54 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . -t myimg:v0.5
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ENV web_home="/var/www/html/"
 ---> Running in 4c136d790dd0
Removing intermediate container 4c136d790dd0
 ---> 90e193e4e810
Step 6/6 : COPY html ${web_home}
 ---> e21e9479b0a7
Successfully built e21e9479b0a7
Successfully tagged myimg:v0.5
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.5                e21e9479b0a7        4 seconds ago       1.22MB
myimg               v0.4                df3d040b5766        17 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        54 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.5 /bin/sh
/ # ls /var/www/html/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到我們打包的鏡像運行成容器后,ENV指定的環境變量目錄里有html目錄下的所有文件;

  8、ARG:該指令用於編譯階段可以使用docker build –build-arg向dockerfile里ARG 指定的變量傳遞值;語法格式ARG <name>[=<default value>];該指令可以在dockerfile中使用多次,也可以給定默認變量一個默認的值,在用戶沒有向該變量傳遞值的情況;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home="/var/www/html/"

COPY html ${web_home}


[root@node1 test]# 

  提示:以上Dockerfile 指定了web_home變量的默認值是“/var/www/html/” 如果在我們build階段沒有使用–build-arg來向web_home傳遞值時,它默認就是“/var/www/html/”,如果我們使用了 –build-agr 指定web_home的值后,後面引用web_home變量的值就是我們用–build-arg傳遞給它的值;

  測試:使用–build-arg向web_home傳遞值

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.5                e21e9479b0a7        14 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        31 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        About an hour ago   8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . --build-arg web_home="/usr/share/www/html/" -t myimg:v0.6
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ARG web_home="/var/www/html/"
 ---> Running in d8697abf9206
Removing intermediate container d8697abf9206
 ---> 6abb65dab341
Step 6/6 : COPY html ${web_home}
 ---> 385cba27c288
Successfully built 385cba27c288
Successfully tagged myimg:v0.6
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.6                385cba27c288        6 seconds ago       1.22MB
myimg               v0.5                e21e9479b0a7        15 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        32 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        About an hour ago   8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.6 /bin/sh
/ # ls /usr/share/www/html/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到我們傳遞進去的路徑下有html目錄下的兩個網頁文件;這說明通過–build-arg 選項可以向Dockerfile里ARG指定指定的變量傳遞值的;

  示例:引用變量給定變量默認值

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home

COPY html ${web_home:-"/data/htdoc/"}


[root@node1 test]# 

  提示:引用變量給定變量默認值的方式同shell中的用法一樣;${web_home:-“/data/htdoc/”} 表示如果web_home這個變量的值未設定或者為空時,就使用默認的值“/data/htdoc/”這個值,如果設置了,那麼設置的是什麼值就是什麼值;

  測試:不使用–build-arg向web_home傳遞值,看看web_home是否會拿到默認值?

[root@node1 test]# docker build . -t myimg:v0.7
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ARG web_home
 ---> Running in 9d98f8e3a1f0
Removing intermediate container 9d98f8e3a1f0
 ---> f164cc3e24ad
Step 6/6 : COPY html ${web_home:-"/data/htdoc/"}
 ---> 4bedea2590b7
Successfully built 4bedea2590b7
Successfully tagged myimg:v0.7
[root@node1 test]# docker run --name test --rm -it myimg:v0.7 /bin/sh
/ # ls /
bin   data  dev   etc   home  proc  root  sys   tmp   usr   var
/ # ls /data/
htdoc
/ # ls /data/htdoc/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到不想web_home傳遞值,默認就是使用我們給設定的默認值

  測試:向web_home傳遞值,看看是否還會使用默認值呢?

[root@node1 test]# docker build . --build-arg web_home=/web/html/ -t myimg:v0.9
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ARG web_home
 ---> Using cache
 ---> f164cc3e24ad
Step 6/6 : COPY html ${web_home:-"/data/htdoc/"}
 ---> 4b6993911e6d
Successfully built 4b6993911e6d
Successfully tagged myimg:v0.9
[root@node1 test]# docker run --name test --rm -it myimg:v0.9 /bin/sh          
/ # ls /
bin   dev   etc   home  proc  root  sys   tmp   usr   var   web
/ # ls /web/
html
/ # ls /web/html/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到通過–build-arg傳遞了web_home的值為“/web/htm/”后,默認的“/data/htdoc/”的值就不會生效;

  9、VOLUME:用於在image中創建一個掛載點目錄,以掛載Docker host上的卷或其它容器上的卷;語法格式 VOLUME <mountpoint> 或 VOLUME [“<mountpoint>”];如果掛載點目錄路徑下此前的文件存在,docker run命令會在卷掛載完成后將此前的所有文件複製到新掛載的卷中;

  示例:

[root@node1 test]# cat Dockerfile
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home

COPY html ${web_home:-"/data/htdoc/"}

VOLUME ${web_home:-"/data/htdoc/"}


[root@node1 test]# 

  提示:volume是指定鏡像里的掛載點,如果該掛載點裏面原來是有文件存在,在使用docker run 時,用-v指定把宿主機上的某個目錄掛載到該掛載點時,默認會把原來有的文件複製新掛載的卷中;這裏還需要特被說一下,這裏指定卷是在鏡像內部創建一個掛載點,運行成容器還需要我們手動的用-v去指定把那個目錄掛載到該掛載點,如果不指定默認就是docker-managed 類型的卷;

  測試:編譯成鏡像,然後運行成容器,看看我們指定的卷宗的文件會不會被覆蓋掉?是否會有文件存在?

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.9                4b6993911e6d        21 minutes ago      1.22MB
myimg               v0.7                4bedea2590b7        23 minutes ago      1.22MB
myimg               v0.6                385cba27c288        30 minutes ago      1.22MB
myimg               v0.5                e21e9479b0a7        46 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        About an hour ago   8.54MB
myimg               v0.3                68161c3beb90        2 hours ago         8.54MB
myimg               v0.2                6ba2693b3084        2 hours ago         8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . -t myimg:v1.0
Sending build context to Docker daemon   1.05MB
Step 1/7 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/7 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/7 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/7 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/7 : ARG web_home
 ---> Using cache
 ---> f164cc3e24ad
Step 6/7 : COPY html ${web_home:-"/data/htdoc/"}
 ---> Using cache
 ---> 4bedea2590b7
Step 7/7 : VOLUME ${web_home:-"/data/htdoc/"}
 ---> Running in 34cad9ca1f79
Removing intermediate container 34cad9ca1f79
 ---> 9554284e4bba
Successfully built 9554284e4bba
Successfully tagged myimg:v1.0
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v1.0                9554284e4bba        2 minutes ago       1.22MB
myimg               v0.9                4b6993911e6d        24 minutes ago      1.22MB
myimg               v0.7                4bedea2590b7        26 minutes ago      1.22MB
myimg               v0.6                385cba27c288        33 minutes ago      1.22MB
myimg               v0.5                e21e9479b0a7        49 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        About an hour ago   8.54MB
myimg               v0.3                68161c3beb90        2 hours ago         8.54MB
myimg               v0.2                6ba2693b3084        2 hours ago         8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v1.0 /bin/sh
/ # ls /
bin   data  dev   etc   home  proc  root  sys   tmp   usr   var
/ # ls /data/htdoc/
test1.html  test2.html
/ # [root@node1 test]# 
[root@node1 test]# docker container inspect test -f {{.Mounts}}
[{volume f3409b021267bd27d58c4b16fb1bc0dae77d4f92f7b5e6255f4ed26a6c27e459 /var/lib/docker/volumes/f3409b021267bd27d58c4b16fb1bc0dae77d4f92f7b5e6255f4ed26a6c27e459/_data /data/htdoc local  true }]
[root@node1 test]# ll /var/lib/docker/volumes/f3409b021267bd27d58c4b16fb1bc0dae77d4f92f7b5e6255f4ed26a6c27e459/_data
total 8
-rw-r--r-- 1 root root 19 May 31 01:51 test1.html
-rw-r--r-- 1 root root 19 May 31 01:51 test2.html
[root@node1 test]# 

  提示:可以看到運行成容器后,默認會把我們指定卷掛載成docker-managed類型的卷;同時我們也看到了對應掛載點上目錄會把原有文件複製到現volume中;

  測試:手動指定宿主機目錄掛載到掛載點,文件是否還會存在呢?

[root@node1 ~]# mkdir /work
[root@node1 ~]# docker run --name test1 --rm -it -v /work:/data/htdoc/ myimg:v1.0 /bin/sh 
/ # ls /data/htdoc/
/ # [root@node1 ~]# ls /work/
[root@node1 ~]# 

  提示:手動指定掛載關係,它就不會把原有目錄下的文件複製到現掛載目錄中了;也就是說,人為手動指定掛載關係,宿主機上的的目錄會覆蓋容器內掛載點下的文件;只有docker自身管理的掛載的卷才會把原目錄下的文件複製到現掛載目錄里;

  10、EXPOSE:用於為容器打開指定要監聽的端口以實現與外部通信(暴露端口);語法格式 EXPOSE <port>[/<protocol>] [<port>[/<protocol>] …]; <protocol>用於指定傳輸層協議,可為tcp或udp二者之一,默認為TCP協議;EXPOSE指令可一次指定多個端口;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home

COPY html ${web_home:-"/data/htdoc/"}

VOLUME ${web_home:-"/data/htdoc/"}

EXPOSE 80/tcp 443/tcp


[root@node1 test]# 

  提示:以上dockerfile中暴露了tcp的80和443端口;在dockerfile中使用EXPOSE暴露端口,在運行成容器時,如果不使用-P來暴露端口,容器里的端口還是暴露不出來;這裏只是build階段明確說明要暴露80和443,而運行成容器我們需要使用-P來把build暴露的端口暴露出來;

  測試:運行時不使用-P暴露端口,看看是否能夠把80和443暴露出來呢?

[root@node1 test]# docker build . -t myimg:v1.1
Sending build context to Docker daemon   1.05MB
Step 1/8 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/8 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/8 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/8 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/8 : ARG web_home
 ---> Using cache
 ---> f164cc3e24ad
Step 6/8 : COPY html ${web_home:-"/data/htdoc/"}
 ---> Using cache
 ---> 4bedea2590b7
Step 7/8 : VOLUME ${web_home:-"/data/htdoc/"}
 ---> Using cache
 ---> 9554284e4bba
Step 8/8 : EXPOSE 80/tcp 443/tcp
 ---> Running in 8d7d5b4aab94
Removing intermediate container 8d7d5b4aab94
 ---> 79c118ea9eb3
Successfully built 79c118ea9eb3
Successfully tagged myimg:v1.1
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v1.1                79c118ea9eb3        4 seconds ago       1.22MB
myimg               v1.0                9554284e4bba        24 minutes ago      1.22MB
myimg               v0.9                4b6993911e6d        46 minutes ago      1.22MB
myimg               v0.7                4bedea2590b7        48 minutes ago      1.22MB
myimg               v0.6                385cba27c288        55 minutes ago      1.22MB
myimg               v0.5                e21e9479b0a7        About an hour ago   1.22MB
myimg               v0.4                df3d040b5766        About an hour ago   8.54MB
myimg               v0.3                68161c3beb90        2 hours ago         8.54MB
myimg               v0.2                6ba2693b3084        2 hours ago         8.54MB
myimg               v0.1                c78c7188f804        3 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v1.0 /bin/sh                        
/ # [root@node1 test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ca4cea9a6f58        myimg:v1.0          "/bin/sh"           15 seconds ago      Up 15 seconds                           test
[root@node1 test]# docker container port test
[root@node1 test]# 

  提示:可以看到運行時,我們不使用-P來暴露端口是把容器內部端口暴露不出來的;

  示例:使用-P來暴露dockerfile里定義的端口

[root@node1 test]# docker run --name test --rm -it -P myimg:v1.1 /bin/sh
/ # [root@node1 test]# docker container port test
443/tcp -> 0.0.0.0:32768
80/tcp -> 0.0.0.0:32769
[root@node1 test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                           NAMES
a78f6cebc0de        myimg:v1.1          "/bin/sh"           19 seconds ago      Up 19 seconds       0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp   test
[root@node1 test]# 

  提示:可以看到使用-P就可以在運行時把build階段定義的暴露端口全部給暴露出來;

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

輕鬆實現記錄與撤銷——C#中的Command模式_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

Command模式屬於行為模式,作為大名鼎鼎的23個設計模式之一,Command模式理解起來不如工廠模式,單例模式等那麼簡單直白。究其原因,行為模式着重於使用,如果沒有編程實踐,確實不如創造模式那麼直白。我們先看看UML類圖。

估計很多同學看着圖就暈了,那麼多東西,Command和Concrete Command還好理解,那些Receiver和Invoker又是什麼東西呢?
 
別著急,只要理解了一點,這個模式就很容易理解了,下面划重點,Command模式最主要的特點,是將命令封裝成類,在類中保存命令執行的上下文(即該命令執行的參數,執行的對象),以實現命令執行對象和命令發出對象的解耦
 
這樣一來是不是覺得好理解多了?Command類裏面的Receiver,就是命令具體執行的對象。這裏的Client可以理解為裝配環境,在這裏面代碼實例化Command。Invoker內部保存命令(可以保存多條命令,實現命令記錄查看,撤銷等),客戶端代碼通過Invoker來操作命令。接下來我們看看示例代碼。

 

定義Command接口

首先我們定義一個支持撤銷的Command接口。

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

    interface Command
    {
        void Execute();
        void Undo();
    }

定義Receiver

接下來我們定義Receiver,也就是命令的執行對象,這裏我們定義一個Ball類。

    class Ball
    {
        public int Size { get; set; } = 10;
        public string Name { get; set; } = "My First Ball";
        public void Inspect()
        {
            Console.WriteLine("My Name is {0} and size is {1}", Name, Size);
        }
    }

定義具體命令

這裏定義兩個命令,一個修改名字,一個修改大小。

    class ChangeNameCommand : Command
    {
        private Ball _Ball;
        private string _OldName;
        public string NameYouWant { get; set; }
        public ChangeNameCommand(Ball ball)
        {
            _Ball = ball;
        }

        public void Execute()
        {
            _OldName = _Ball.Name;
            _Ball.Name = NameYouWant;
        }

        public void Undo()
        {
            _Ball.Name = _OldName;
        }
    }
    
	class ChangeSizeCommand : Command
	{
	//代碼大同小異,略
	}

定義Invoker

接下來是Invoker,,也就是存儲命令,並最終會被用戶代碼調用的類,這裏我們叫它CommandManager。

    class CommandManager
    {
        private Stack<Command> commands = new Stack<Command>();

        public void RunCommand(Command command)
        {
            command.Execute();
            commands.Push(command);
        }

        public void Undo()
        {
            if (commands.Count > 0)
            {
                var command = commands.Pop();
                command.Undo();
            }
        }
        
		public void ShowCommands()
        {
            var temp = commands.Reverse();
            foreach(var command in temp)
            {
                //display command
            }
        }
    }

使用命令

現在我們看看客戶端代碼是怎麼使用他們的,定義Ball,定義命令,通過CommandManager去調用,這樣可以方便查看命令記錄,撤銷命令,等。

        static void Main(string[] args)
        {
            Ball ball = new Ball();
            ball.Inspect();

            ChangeNameCommand changeName = new ChangeNameCommand(ball) { NameYouWant = "Changed" };
            ChangeSizeCommand changeSize = new ChangeSizeCommand(ball) { SizeYouWant = 20 };

            CommandManager manager = new CommandManager();
            manager.RunCommand(changeName);
            manager.RunCommand(changeSize);
            ball.Inspect();

			manager.ShowCommands();
            
            manager.Undo();
            ball.Inspect();

            manager.Undo();
            ball.Inspect();            
        }

就醬,我們已經實現了命令模式,並且還支持命令的記錄與撤銷,希望能對大家有點幫助。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

青銅食器 鐘鳴鼎食_網頁設計公司_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

中國古代青銅食器起源甚早,源遠流長,經夏商周三代而臻於隆盛。河南偃師二里頭遺址,就曾出土一件距今3500多年的平底圓鼎。商代之後,青銅食器逐漸作為主角登上歷史舞台。現藏於中國國家博物館的杜嶺方鼎,就是目前所見商代前期形體最大的青銅鼎。商代後期也就是殷墟時期,青銅食器開始以特定的組合方式出現,不但規模數量大幅度提升,而且面貌各異,精品迭出。尤其是大名鼎鼎的後母戊鼎(圖③),高133厘米,口長110厘米,口寬79厘米,重達832.84公斤,造型雄偉,氣勢恢宏,1939年一經發現就備受矚目,如今已成為中國國家博物館的代表性珍藏之一。

  青銅食器按其功能可以細分為烹煮器、盛食器、挹取器、切肉器等,其中烹煮盛食器種類數量最多,像鼎、簋(guǐ)、鬲(lì)、豆等都是後人耳熟能詳的門類。

  烹煮器:鼎、鬲、甗

  烹煮器主要有鼎、鬲、甗(yǎn)。

  鼎是殷周青銅器中數量最多、地位最重要的器類,主要用來烹煮肉食。商周墓葬出土的銅鼎內往往存有牛、羊、豬、魚、雞等各種動物遺骨,考古資料也證實了鼎的確切用途。

  鬲的功能和鼎相似,也是烹煮肉食的(圖①:西周戜(dié)伯鬲)。這點由東週隨葬陶鬲中發現有豚骨可推知。

  甗的上半部分為甑(zèng),下半部分為鬲(也有作鼎形的),中間有箄(bǐ),箄上有孔,甑置食物,鬲盛水,下舉火煮水,以蒸汽加熱食物,作用同於現在的蒸鍋。著名的殷墟婦好墓出土的三聯甗(圖⑥),由三個甑和一個長方形案狀的鬲組成,案上有三個圈形孔灶,用來承置甑體,不僅放置穩當,而且一次能加溫蒸好三份飯,構思非常奇巧。

  盛食器:簋、盨、簠、敦、豆

  盛食器則主要包括簋、盨(xǔ)(圖⑦:西周魯司徒伯吳盨)、簠(fǔ)(圖④:春秋捲曲夔紋簠)、敦(duì)、豆,主要用於盛放黍稷稻粱等主食。豆還可以盛放肉醬、肉汁、醬菜等食品,相當於今天的菜盤(圖②:戰國嵌紅銅獸紋豆)。

 挹取器匕、切肉器俎

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

  挹取器指的是匕,多放置於鼎、鬲、甗等器中,主要用來取肉食、飯食。切肉器指的是俎,是切肉用的几案,俎面上多有鏤孔,便於在切肉時擠壓出的肉汁滲流。(圖⑤:春秋王子臣俎)從功能上看,這些食器之間的關係十分密切,比如鼎、俎、匕就是一套完整處理肉食的裝備,用匕將肉從鼎中取出,放置在俎上切分,用於祭祀和宴饗。

  西周以降,週人重食,鼎簋等食器進而升級成為青銅禮器的核心,鼎為奇數、簋為偶數,形成“列鼎”的器用制度,即所謂“禮祭,天子九鼎,諸侯七,卿大夫五,元士三也”(《公羊傳》桓公二年何休注),某些情況下盨、簠也可以代替簋的位置。這種青銅食器禮器化的場景,還被頻頻載入詩歌。《詩經·週頌·絲衣》雲“鼐(nài)鼎及鼒(zī),兕(sì,古代犀牛一類的獸名)觥(gōng)其觩(qiú)”,描繪的正是周王祭祀行禮時的盛況,鼐指大鼎,鼒為小鼎,“鼐鼎及鼒”的意思就是尺寸大小有等差的一套鼎。考古發現也證實了這一描述。山西曲沃北趙晉侯墓地八號墓出土有五件晉侯蘇鼎,它們造型、紋樣、銘文全部相同,僅大小尺寸呈遞減陳設,這組晉侯蘇列鼎顯然是《絲衣》這首古詩生動的註腳。

  由此看來,古代中國青銅食器不僅單純作為實用器,而且被賦予了特殊的使命,彰顯的是尊卑貴賤的社會地位,是等級身份和行為規範的標誌,由此形成獨特的禮器體系,正所謂“藏禮於器”。

  例如1978年陝西扶風齊村出土的簋,體量巨大,通高59厘米,口徑43厘米,腹深23厘米,重達60公斤,是存世商周青銅簋中最大的一件,而它的主人正是赫赫有名的周厲王。《詩經·小雅·伐木》雲“於(wū)粲灑埽,陳饋八簋”,說的是天子九鼎八簋,通過這一件器物,我們就可以遙想西周天子氣像是何等的恢弘磅礴。西周青銅食器高度發達,還出現了很多新的器型,如簠、盨等。現藏於中國國家博物館的內史盨,便是年代最早的青銅盨之一。值得一提的是,中國國家博物館館藏名器西周大盂鼎,鼎內鑄有銘文291字,其中一段銘文記載的是商人因縱酒誤國,以致亡國的史實,使我們不由聯想到商紂王“以酒為池”的惡跡,這也是目前發現的唯一有關商人縱酒亡國的實物證據。

  東週時期,列國諸侯紛爭不休,青銅文化呈現出鮮明的地域差異,青銅食器也不例外,顯得爭奇鬥豔。

  1978年河南淅川下寺二號墓出土的七件王子午鼎是一套列鼎,器主是楚莊王之子王子午,其中最大的一件通高67.4厘米、口徑66厘米、重110.4公斤,出土時還附有一銅匕,是挹取鼎中之肉的工具。這種平底束腰形制的鼎,是東週時期楚文化的代表,現藏於中國國家博物館。

  長江下游乃至廣東、廣西等南方地區,則流行一種被稱作“越式鼎”的三足細瘦外撇的銅鼎,極具地方特色。至於河北、北京一帶,則常見一種世稱“燕式豆”的銅豆,同樣別具一格。由此可見,東週時期銅豆的地位上升,常與鼎作為固定組合出現。

  歷經數千年的滄桑,那些觥籌交錯的場面早已湮沒於歷史深處,但留存至今的一件件青銅食器足以讓我們浮想聯翩,去回味那個鐘鳴鼎食的時代。毋庸置疑,這些承載著中華文明基因的青銅食器,早已脫離了其本身的實用意義,演變為國家政權、社稷秩序的象徵,進而又演變為中華文化的象徵性符號,並將一代一代傳承下去。

  (作者為中國國家博物館館長,本報記者王珏整理。圖片由國家博物館提供)

  版式設計:沈亦伶

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境