docker入門——安裝(CentOS)秕狰、鏡像、容器

Docker簡介

什么是docker

官方解釋

Docker is the company driving the container movement and the only container platform provider to address every application across the hybrid cloud. Today’s businesses are under pressure to digitally transform but are constrained by existing applications and infrastructure while rationalizing an increasingly diverse portfolio of clouds, datacenters and application architectures. Docker enables true independence between applications and infrastructure and developers and IT ops to unlock their potential and creates a model for better collaboration and innovation.

Google翻譯:

Docker是推動集裝箱運(yùn)動的公司东跪,也是唯一一家應(yīng)對整個混合云中的每個應(yīng)用的集裝箱平臺提供商畸陡。 當(dāng)今的企業(yè)面臨著數(shù)字化轉(zhuǎn)型的壓力,但受到現(xiàn)有應(yīng)用程序和基礎(chǔ)架構(gòu)的制約虽填,同時合理化日益多樣化的云丁恭,數(shù)據(jù)中心和應(yīng)用程序架構(gòu)產(chǎn)品組合。 Docker實現(xiàn)了應(yīng)用程序和基礎(chǔ)架構(gòu)與開發(fā)人員和IT操作員之間的真正獨(dú)立性卤唉,從而發(fā)揮他們的潛力并創(chuàng)建更好的協(xié)作和創(chuàng)新模式涩惑。

《Docker從入門到實踐》介紹 “什么是Docker”

為什么用docker

在微服務(wù)的大背景下仁期,一臺物理機(jī)或者云主機(jī)可能要運(yùn)行很多應(yīng)用桑驱。應(yīng)用必須依賴于開發(fā)環(huán)境竭恬。當(dāng)我們遇到拓展物理機(jī)、云主機(jī)熬的、應(yīng)用遷移等場景痊硕,必然要重新搭建開發(fā)環(huán)境。這時押框,虛擬化技術(shù)就很好地保證環(huán)境一致岔绸、配置一致,并且讓你更高效地遷移應(yīng)用橡伞。

Docker正是應(yīng)對這種場景的虛擬化技術(shù)盒揉。例如java,只要機(jī)器上安裝了JVM兑徘,一份代碼到處運(yùn)行刚盈。應(yīng)用好比java,只要機(jī)器上安裝docker挂脑,我們事先保存的鏡像可以到處運(yùn)行藕漱。這些鏡像可以是nginx、php崭闲、mysql肋联、數(shù)據(jù)倉庫等,無論你的主機(jī)從ubuntu遷移到centos刁俭,還是windows遷移linux橄仍,只要主機(jī)安裝了docker,就能迅速地部署好新環(huán)境牍戚,并且保持環(huán)境沙兰、配置一致。

詳情參考 《Docker從入門到實踐》—— “為什么用Docker”


鏡像翘魄、容器鼎天、倉庫

鏡像,是特殊的文件系統(tǒng)暑竟,他包含程序斋射、配置、資源等但荤;

容器罗岖,鏡像的實例。就像是類和實例一樣腹躁,鏡像是靜態(tài)的定義桑包,容器是鏡像運(yùn)行時的實體。容器可以被創(chuàng)建纺非、啟動哑了、停止赘方、刪除、暫停等弱左。

倉庫窄陡,用于保存鏡像的服務(wù)。

詳情參考《Docker從入門到實踐》——基本概念


CentOS安裝docker

安裝之前拆火,建議先yum -y upgrade更新軟件包跳夭。

官方安裝腳本

curl -sSL https://get.docker.com/ | sh

官方安裝指南:docker/docker-install

阿里云安裝腳本

由于國內(nèi)墻的原因,如果安裝官方腳本很慢们镜,可以試試阿里云安裝腳本:

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

如果你是其他操作系統(tǒng)币叹,參考一下《安裝 Docker》

Windows安裝docker

官方文檔Install Docker Toolbox on Windows挺詳細(xì)的了,下載安裝docker toolbox模狭。

如果遇到:

This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory.

修改一下BIOS設(shè)置:

重啟電腦后按F2或F10進(jìn)入BIOS界面(不同主板型號進(jìn)入BIOS所需按鍵不同)套硼。 進(jìn)入BIOS界面:Configuratio > Intel Virtualization Technology > Enabled。 注:主板不一樣其BISO中顯示關(guān)鍵詞也不一樣的胞皱,主要是找到Virtual或Virtualization將其設(shè)置為Enabled邪意。

重啟docker

service docker restart

這一步很重要,如果不重啟反砌,docker pull時會有如下錯誤:

Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?)...

鏡像

搜索鏡像

你可以在Docker HubDocker Store上搜索你要的鏡像雾鬼。例如,你要找nginx

1.搜索nginx

2.瀏覽官方nginx鏡像詳情宴树,可以看到有很多版本(準(zhǔn)確來說是tag)選擇

拉取鏡像

從 Docker Registry 獲取鏡像的命令是 docker pull抢呆,官方文檔茧吊。其命令格式為:

docker pull [選項] name[:tag]

例如嚼松,拉取剛才搜到的nginx:latest

docker pull nginx

如果你想拉取某個tagnginx虾啦,則執(zhí)行docker pull nginx:{tag},例如docker pull nginx:1.13锭吨。如不寫tag蠢莺,默認(rèn)latest

如果出現(xiàn)如下信息零如,說明安裝成功

Using default tag: latest
latest: Pulling from library/nginx
8176e34d5d92: Pull complete
cb1142c3ae99: Pull complete
45b531966c63: Pull complete
Digest: sha256:0ffc09487404ea43807a1fd9e33d9e924d2c8b48a7b7897e4d1231a396052ff9
Status: Downloaded newer image for nginx:latest

列出本地鏡像

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              9e988ed19567        43 hours ago        109MB

說明已拉取一個nginx:latest鏡像到本地了躏将。

刪除鏡像

使用docker rmi命令刪除鏡像,官方文檔考蕾。格式是:

docker rmi -f {repository}:{tag}

docker rmi -f {image id}

例如祸憋,刪除剛才安裝的nginx:latestdocker rmi -f nginx:latestdocker rmi -f 9e988ed19567肖卧。


容器

啟動容器有兩種方式:

  1. 基于鏡像新建一個容器并啟動蚯窥;
  2. 重新啟動在終止?fàn)顟B(tài)(stopped)的容器。

新建并啟動

基于鏡像啟動新容器,用docker run命令拦赠,官方文檔巍沙,格式:

docker run [options] image [command] [arg...]

我們啟動nginx

docker run --name my_nginx -p 80:80 -d nginx

(如果啟動指定tagnginx,則docker run ... nginx:{tag}即可)

options說明:

--name 指定容器名矛紫,"--name my_nginx"指定容器名為"my_nginx";
-p     映射端口,"-p 80:80"表示映射容器80端口到主機(jī)80端口牌里,
       參數(shù)格式ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort
-d     在后臺運(yùn)行颊咬,并打印container id

參考docker run參數(shù)

查看容器狀態(tài)

$ docker ps

CONTAINER ID  IMAGE  COMMAND   ...               PORTS               NAMES                                
fcc368a4d5c0  nginx  "nginx -g 'daemon of…"  ... 0.0.0.0:80->80/tcp  my_nginx

(省略了CREATED & STATUS字段)

如果my_nginx存在,證明容器在運(yùn)行牡辽。假如服務(wù)器ip是45.77.146.10喳篇,在瀏覽器打開:

出現(xiàn)nginx畫面,證明nginx容器正常運(yùn)行态辛,并成功映射80端口麸澜。

進(jìn)入容器

使用docker exec命令,官方文檔

$ docker exec -it my_nginx bash
root@fcc368a4d5c0:#

對容器的操作奏黑,就像普通linux那樣炊邦。我們定位到/usr/share/nginx/html/目錄,列出所有文件:

# cd /usr/share/nginx/html/
# ls
50x.html   index.html

目錄下有50x.htmlindex.html兩個文件熟史,我們新建一個test.html

echo "<html><header><title>測試頁面</title></header>test</html>" >> test.html

在瀏覽器打開http://45.77.146.10/test.html

停止容器

使用docker stop命令馁害,官方文檔,格式:

docker stop [options] container

停止my_nginx容器:

docker stop my_nginx

(也可以指定container id停止容器蹂匹,docker stop fcc368a4d5c0)

查看停止?fàn)顟B(tài)容器

剛才my_nginx容器碘菜,只是停止了,并沒有銷毀限寞。執(zhí)行命令:

$ docker ps -a

CONTAINER ID   IMAGE   COMMAND                  CREATED         STATUS                     PORTS    NAMES
fcc368a4d5c0   nginx   "nginx -g 'daemon of…"   17 minutes ago  Exited (0) 7 seconds ago            my_nginx

我們看到my_nginx處于停止?fàn)顟B(tài)忍啸。當(dāng)已存在namemy_nginx,就不可以再run一個--name my_nginx的容器履植。

我們試試docker run --name my_nginx -d nginx计雌,會報錯:

docker: Error response from daemon: Conflict. 
The container name "/my_nginx" is already in use by container "fcc368a4d5c0f7e0c1fb9bf60780623f1ad5613d68a6496e5fd41bd0a05c3b0a". You have to remove (or rename) that container to be able to reuse that name.

重啟容器

docker start my_nginx

然后查看容器狀態(tài)

$ docker ps
CONTAINER ID    IMAGE   COMMAND                  CREATED           STATUS          PORTS                NAMES
fcc368a4d5c0    nginx   "nginx -g 'daemon of…"   24 minutes ago    Up 7 minutes    0.0.0.0:80->80/tcp   my_nginx

my_nginx已重啟,保留著之前的狀態(tài)玫霎。

刪除容器

刪除容器前白粉,必須先停止容器。刪除命令:

docker rm my_nginx

再次查看終止?fàn)顟B(tài)容器鼠渺,docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

my_nginx已被銷毀鸭巴。銷毀的容器不能再用docker start啟動,必須用docker run新建容器拦盹。


關(guān)于作者

我是鍵盤男鹃祖。
在廣州生活,在互聯(lián)網(wǎng)公司上班普舆,猥瑣文藝碼農(nóng)恬口。喜歡科學(xué)校读、歷史,玩玩投資祖能。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歉秫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子养铸,更是在濱河造成了極大的恐慌雁芙,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钞螟,死亡現(xiàn)場離奇詭異兔甘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鳞滨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門洞焙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拯啦,你說我怎么就攤上這事澡匪。” “怎么了褒链?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵仙蛉,是天一觀的道長。 經(jīng)常有香客問我碱蒙,道長荠瘪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任赛惩,我火速辦了婚禮哀墓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喷兼。我一直安慰自己篮绰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布季惯。 她就那樣靜靜地躺著吠各,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勉抓。 梳的紋絲不亂的頭發(fā)上贾漏,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音藕筋,去河邊找鬼纵散。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伍掀。 我是一名探鬼主播掰茶,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜜笤!你這毒婦竟也來了濒蒋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤把兔,失蹤者是張志新(化名)和其女友劉穎沪伙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垛贤,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焰坪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年趣倾,在試婚紗的時候發(fā)現(xiàn)自己被綠了聘惦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡儒恋,死狀恐怖善绎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诫尽,我是刑警寧澤禀酱,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站牧嫉,受9級特大地震影響剂跟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酣藻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一曹洽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辽剧,春花似錦送淆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撞羽,卻和暖如春阐斜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诀紊。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工智听, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓到推,卻偏偏與公主長得像考赛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子莉测,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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