docker的安裝與操作

安裝與操作

1. 在Ubuntu中安裝Docker

更新ubuntu的apt源索引

sudo apt-get update

安裝包允許apt通過(guò)HTTPS使用倉(cāng)庫(kù)

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

添加Docker官方GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

設(shè)置Docker穩(wěn)定版?zhèn)}庫(kù)

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

添加倉(cāng)庫(kù)后箱残,更新apt源索引

sudo apt-get update

安裝最新版Docker CE(社區(qū)版)

sudo apt-get install docker-ce

檢查Docker CE是否安裝正確

sudo docker run hello-world

出現(xiàn)如下信息喳资,表示安裝成功

[圖片上傳失敗...(image-26449c-1539015815171)]

為了避免每次命令都輸入sudo音念,可以設(shè)置用戶權(quán)限果漾,注意執(zhí)行后須注銷重新登錄

sudo usermod -a -G docker $USER

2. 啟動(dòng)與停止

安裝完成Docker后奏路,默認(rèn)已經(jīng)啟動(dòng)了docker服務(wù)霉囚,如需手動(dòng)控制docker服務(wù)的啟停蝶念,可執(zhí)行如下命令

# 啟動(dòng)docker
sudo service docker start

# 停止docker
sudo service docker stop

# 重啟docker
sudo service docker restart

3. Docker鏡像操作

什么是Docker鏡像

Docker 鏡像是由文件系統(tǒng)疊加而成(是一種文件的存儲(chǔ)形式)翰蠢。最底端是一個(gè)文件引 導(dǎo)系統(tǒng)屎篱,即 bootfs服赎,這很像典型的 Linux/Unix 的引導(dǎo)文件系統(tǒng)葵蒂。Docker 用戶幾乎永遠(yuǎn)不會(huì)和 引導(dǎo)系統(tǒng)有什么交互。實(shí)際上重虑,當(dāng)一個(gè)容器啟動(dòng)后践付,它將會(huì)被移動(dòng)到內(nèi)存中,而引導(dǎo)文件系 統(tǒng)則會(huì)被卸載缺厉,以留出更多的內(nèi)存供磁盤鏡像使用永高。Docker 容器啟動(dòng)是需要一些文件的, 而這些文件就可以稱為 Docker 鏡像提针。

[圖片上傳失敗...(image-6e49c1-1539015815171)]

Docker 把應(yīng)用程序及其依賴命爬,打包在 image 文件里面。只有通過(guò)這個(gè)文件辐脖,才能生成 Docker 容器饲宛。image 文件可以看作是容器的模板。Docker 根據(jù) image 文件生成容器的實(shí)例嗜价。同一個(gè) image 文件艇抠,可以生成多個(gè)同時(shí)運(yùn)行的容器實(shí)例。

image 是二進(jìn)制文件久锥。實(shí)際開(kāi)發(fā)中家淤,一個(gè) image 文件往往通過(guò)繼承另一個(gè) image 文件,加上一些個(gè)性化設(shè)置而生成瑟由。舉例來(lái)說(shuō)絮重,你可以在 Ubuntu 的 image 基礎(chǔ)上,往里面加入 Apache 服務(wù)器歹苦,形成你的 image绿鸣。

image 文件是通用的,一臺(tái)機(jī)器的 image 文件拷貝到另一臺(tái)機(jī)器暂氯,照樣可以使用潮模。一般來(lái)說(shuō),為了節(jié)省時(shí)間痴施,我們應(yīng)該盡量使用別人制作好的 image 文件擎厢,而不是自己制作。即使要定制辣吃,也應(yīng)該基于別人的 image 文件進(jìn)行加工动遭,而不是從零開(kāi)始制作。

為了方便共享神得,image 文件制作完成后厘惦,可以上傳到網(wǎng)上的倉(cāng)庫(kù)。Docker 的官方倉(cāng)庫(kù) Docker Hub 是最重要哩簿、最常用的 image 倉(cāng)庫(kù)宵蕉。此外酝静,出售自己制作的 image 文件也是可以的。

列出鏡像

docker image ls

[圖片上傳失敗...(image-12c838-1539015815171)]

  • REPOSITORY:鏡像所在的倉(cāng)庫(kù)名稱
  • TAG:鏡像標(biāo)簽
  • IMAGEID:鏡像ID
  • CREATED:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)
  • SIZE:鏡像大小

為了區(qū)分同一個(gè)倉(cāng)庫(kù)下的不同鏡像羡玛,Docker 提供了一種稱為標(biāo)簽(Tag)的功能别智。每個(gè) 鏡像在列出來(lái)時(shí)都帶有一個(gè)標(biāo)簽,例如latest稼稿、 12.10薄榛、12.04 等等。每個(gè)標(biāo)簽對(duì)組成特定鏡像的一 些鏡像層進(jìn)行標(biāo)記(比如让歼,標(biāo)簽 12.04 就是對(duì)所有 Ubuntu12.04 鏡像層的標(biāo)記)敞恋。這種機(jī)制 使得同一個(gè)倉(cāng)庫(kù)中可以存儲(chǔ)多個(gè)鏡像。--- 版本號(hào)

我們?cè)谶\(yùn)行同一個(gè)倉(cāng)庫(kù)中的不同鏡像時(shí)谋右,可以通過(guò)在倉(cāng)庫(kù)名后面加上一個(gè)冒號(hào)和標(biāo)簽名 來(lái)指定該倉(cāng)庫(kù)中的某一具體的鏡像耳舅,例如 docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明從鏡像 Ubuntu:12.04 啟動(dòng)一個(gè)容器倚评,而這個(gè)鏡像的操 作系統(tǒng)就是 Ubuntu:12.04浦徊。在構(gòu)建容器時(shí)指定倉(cāng)庫(kù)的標(biāo)簽也是一個(gè)好習(xí)慣。

拉取鏡像

Docker維護(hù)了鏡像倉(cāng)庫(kù)天梧,分為共有和私有兩種盔性,共有的官方倉(cāng)庫(kù)Docker Hub(https://hub.docker.com/)是最重要最常用的鏡像倉(cāng)庫(kù)。私有倉(cāng)庫(kù)(Private Registry)是開(kāi)發(fā)者或者企業(yè)自建的鏡像存儲(chǔ)庫(kù)呢岗,通常用來(lái)保存企業(yè) 內(nèi)部的 Docker 鏡像冕香,用于內(nèi)部開(kāi)發(fā)流程和產(chǎn)品的發(fā)布、版本控制后豫。

要想獲取某個(gè)鏡像悉尾,我們可以使用pull命令,從倉(cāng)庫(kù)中拉取鏡像到本地挫酿,如

docker image pull library/hello-world

上面代碼中构眯,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在倉(cāng)庫(kù)里面的位置早龟,其中library是 image 文件所在的組惫霸,hello-world是 image 文件的名字。

由于 Docker 官方提供的 image 文件葱弟,都放在library組里面壹店,所以它的是默認(rèn)組,可以省略芝加。因此硅卢,上面的命令可以寫成下面這樣。

docker image pull hello-world

刪除鏡像

docker image rm 鏡像名或鏡像id

docker image rm hello-world

4. Docker 容器操作

創(chuàng)建容器

docker run [option] 鏡像名 [向啟動(dòng)容器中傳入的命令]

常用可選參數(shù)說(shuō)明:

  • -i 表示以“交互模式”運(yùn)行容器
  • -t 表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后将塑,容器創(chuàng)建就能登錄進(jìn)去脉顿。即 分配一個(gè)偽終端。
  • --name 為創(chuàng)建的容器命名
  • -v 表示目錄映射關(guān)系(前者是宿主機(jī)目錄抬旺,后者是映射到宿主機(jī)上的目錄弊予,即 宿主機(jī)目錄:容器中目錄)祥楣,可以使 用多個(gè)-v 做多個(gè)目錄或文件映射开财。注意:最好做目錄映射,在宿主機(jī)上做修改误褪,然后 共享到容器上责鳍。
  • -d 在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不 會(huì)自動(dòng)登錄容器,如果只加-i -t 兩個(gè)參數(shù)兽间,創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)历葛。
  • -p 表示端口映射,前者是宿主機(jī)端口嘀略,后者是容器內(nèi)的映射端口恤溶。可以使用多個(gè)-p 做多個(gè)端口映射
  • -e 為容器設(shè)置環(huán)境變量
  • --network=host 表示將主機(jī)的網(wǎng)絡(luò)環(huán)境映射到容器中帜羊,容器的網(wǎng)絡(luò)與主機(jī)相同

交互式容器

例如咒程,創(chuàng)建一個(gè)交互式容器,并命名為myubuntu

docker run -it --name=myubuntu ubuntu /bin/bash

在容器中可以隨意執(zhí)行l(wèi)inux命令讼育,就是一個(gè)ubuntu的環(huán)境帐姻,當(dāng)執(zhí)行exit命令退出時(shí),該容器也隨之停止奶段。

守護(hù)式容器

創(chuàng)建一個(gè)守護(hù)式容器:如果對(duì)于一個(gè)需要長(zhǎng)期運(yùn)行的容器來(lái)說(shuō)饥瓷,我們可以創(chuàng)建一個(gè)守護(hù)式容器。在容器內(nèi)部exit退出時(shí)痹籍,容器也不會(huì)停止呢铆。

docker run -dit --name=myubuntu2 ubuntu

進(jìn)入已運(yùn)行的容器

docker exec -it 容器名或容器id 進(jìn)入后執(zhí)行的第一個(gè)命令

docker exec -it myubuntu2 /bin/bash

查看容器

# 列出本機(jī)正在運(yùn)行的容器
docker container ls

# 列出本機(jī)所有容器,包括已經(jīng)終止運(yùn)行的
docker container ls --all

停止與啟動(dòng)容器

# 停止一個(gè)已經(jīng)在運(yùn)行的容器
docker container stop 容器名或容器id

# 啟動(dòng)一個(gè)已經(jīng)停止的容器
docker container start 容器名或容器id

# kill掉一個(gè)已經(jīng)在運(yùn)行的容器
docker container kill 容器名或容器id

刪除容器

docker container rm 容器名或容器id

5. 將容器保存為鏡像

我們可以通過(guò)如下命令將容器保存為鏡像

docker commit 容器名 鏡像名

6. 鏡像備份與遷移

我們可以通過(guò)save命令將鏡像打包成文件蹲缠,拷貝給別人使用

docker save -o 保存的文件名 鏡像名

docker save -o ./ubuntu.tar ubuntu

在拿到鏡像文件后刺洒,可以通過(guò)load方法,將鏡像加載到本地

docker load -i ./ubuntu.tar
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吼砂,一起剝皮案震驚了整個(gè)濱河市逆航,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渔肩,老刑警劉巖因俐,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抹剩,警方通過(guò)查閱死者的電腦和手機(jī)撑帖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)澳眷,“玉大人胡嘿,你說(shuō)我怎么就攤上這事∏唬” “怎么了衷敌?”我有些...
    開(kāi)封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拓瞪。 經(jīng)常有香客問(wèn)我缴罗,道長(zhǎng),這世上最難降的妖魔是什么祭埂? 我笑而不...
    開(kāi)封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任面氓,我火速辦了婚禮,結(jié)果婚禮上蛆橡,老公的妹妹穿的比我還像新娘舌界。我一直安慰自己,他們只是感情好泰演,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布呻拌。 她就那樣靜靜地躺著,像睡著了一般粥血。 火紅的嫁衣襯著肌膚如雪柏锄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天复亏,我揣著相機(jī)與錄音趾娃,去河邊找鬼。 笑死缔御,一個(gè)胖子當(dāng)著我的面吹牛抬闷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耕突,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼笤成,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了眷茁?” 一聲冷哼從身側(cè)響起炕泳,我...
    開(kāi)封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎上祈,沒(méi)想到半個(gè)月后培遵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體浙芙,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年籽腕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗡呼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡皇耗,死狀恐怖南窗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情郎楼,我是刑警寧澤万伤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站箭启,受9級(jí)特大地震影響壕翩,放射性物質(zhì)發(fā)生泄漏蛉迹。R本人自食惡果不足惜傅寡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望北救。 院中可真熱鬧荐操,春花似錦、人聲如沸珍策。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)攘宙。三九已至屯耸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹭劈,已是汗流浹背疗绣。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铺韧,地道東北人多矮。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像哈打,于是被迫代替她去往敵國(guó)和親塔逃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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