docker基礎(chǔ)知識(shí)掌握

##?CentOS 7 上配置docker環(huán)境

### 安裝

個(gè)人機(jī)智剃诅,之前已經(jīng)安裝過EPEL了,所以可以直接yum安裝

```

sudo yum install docker

```


### 啟動(dòng)docker的守護(hù)進(jìn)程

```

sudo systemctl start docker

```

我們可能需要其開機(jī)啟動(dòng)

```

sudo systemctl enable docker

```


### 確認(rèn)是否正常安裝

```

sudo docker info

```


>Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

>


### 運(yùn)行第一個(gè)容器

```

sudo docker run -i -t ubuntu /bin/bash

```

> 其中:

-i? ? 表示使容器接受 標(biāo)準(zhǔn)輸入 STDIN

-t? ? 表示令容器提供一個(gè) 偽終端 也就是 tty

-i 與 -t 結(jié)合故慈,使我們和與容器交互,**如果不使用這兩個(gè)參數(shù)由蘑,那么容器則后臺(tái)運(yùn)行**

>


### 使用第一個(gè)容器

上述啊楚,我們已經(jīng)進(jìn)入并獲得了docker容器的root shell参袱,可以查看目前的容器ID

```

hostname

```

按照一些必要的軟件先电谣,*事實(shí)上,我感覺這個(gè)時(shí)候就像拿到了一個(gè)新的服務(wù)器一樣....*

```

apt-get update

apt-get install vim

```

接下來抹蚀,就可以做任何自己需要做的事情...

退出容器的話剿牺,一樣使用

```

exit

```

此時(shí)容器也直接關(guān)閉了

如果是在容器外,要查看當(dāng)前系統(tǒng)的容器列表环壤,那么可以直接

```

sudo docker ps -a -l

```

### 給容器命名

```

sudo docker run --name my_docker -i -t ubuntu /bin/bash

```

### 重新啟動(dòng)已經(jīng)停止的容器

```

sudo docker start my_docker

```

start后面可以是某個(gè)容器的**ID或者是Name**

*注意晒来,restart可以重啟容器;另容器啟動(dòng)時(shí)郑现,沒有使用-i -t 的話潜索,其實(shí)他已經(jīng)在后臺(tái)運(yùn)行了*

可以查看正在運(yùn)行的容器

```

sudo docker ps

```

對(duì)于正在運(yùn)行的容器,可以直接鏈接進(jìn)去懂酱,類似tmux,**注意誊抛,需要一個(gè)回車操作列牺,才會(huì)顯示tty**

```

sudo docker attach my_docker

```


### 使用守護(hù)式容器(后臺(tái)運(yùn)行的docker)

守護(hù)式容器,即長期后臺(tái)運(yùn)行拗窃,提供服務(wù)

可以創(chuàng)建一個(gè)后臺(tái)運(yùn)行的容器

```

sudo docker run --name daemon_docker -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"

#?d160ad1158c00f46fbde58c54974337ef219cbf7034049218711accd2e713c0d

```

正常開始后瞎领,會(huì)直接返回**容器ID**

可以用過`sudo docker ps`查看其是否運(yùn)行,也可以直接查看其目前的shell輸出信息

```

sudo docker logs daemon_docker

sudo docker logs -f daemon_docker

sudo docker logs -ft daemon_docker

```

也可以查看容器中的進(jìn)程

```

sudo docker top daemon_docker

```

或者直接在容器內(nèi)部運(yùn)行一個(gè)新的進(jìn)程

```

sudo docker exec -d daemon_docker touch /etc/new_file

```

從正在后臺(tái)運(yùn)行的容器中獲得一個(gè)新的shell

```

sudo docker exec -t -i daemon_docker /bin/bash

```

停止守護(hù)式容器

```

sudo docker stop daemon_docker

```

> 如果需要快速停止随夸,可以使用`docker kill`


### 自動(dòng)重啟docker

```

sudo docker run --restart=always --name daemon_docker -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

```

### 查看容器的詳細(xì)配置信息

```

sudo docker inspect daemon_docker

sudo docker inspect --format='{{.State.Running}}' daemon_docker

sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' daemon_docker

```


### 刪除容器

注意九默,無法直接刪除正在運(yùn)行的容器,需要先將其關(guān)閉

```

sudo docker rm daemon_docker

```


## 使用Docker鏡像和倉庫

### 列出鏡像

```

sudo docker images

```

下載ubuntu倉庫中的其他鏡像(即所有ubuntu鏡像)

```

sudo docker pull ubuntu -a

```

下載指定的centos鏡像(如我們需要的 **CentOS6**)

```

sudo docker pull centos:6

```

### 查看鏡像

```

sudo docker search centos

sudo docker search puppet

```

### 構(gòu)建鏡像

構(gòu)建鏡像主要有兩種方法


1. 使用`docker commit`命令

2. 使用`docker build` 和 **Dockerfile**文件


#### 創(chuàng)建Docker Hub 賬號(hào)

進(jìn)去[DockerHub](https://hub.docker.com/account/signup)的主頁宾毒,注冊(cè)自己的賬戶驼修,

> 賬號(hào) cjchen


#### 本地登錄自己的賬號(hào)

```

sudo docker login

```

#### 使用Docker的commit命令創(chuàng)建鏡像

```

sudo docker run -t -i ubuntu /bin/bash

```

在容器中,進(jìn)行修改,最終再提交為一個(gè)新的鏡像(**注意乙各,也就是說墨礁,如果沒有進(jìn)行commit,那么此次運(yùn)行中進(jìn)行的修改耳峦,等于 沒有修改 恩静,所以其實(shí)前面我們?nèi)魏涡薷亩紱]有被保存過!蹲坷!包括安裝任何軟件**)

下面進(jìn)行一些修改并保存

安裝apache2

```

apt-get -yqq update

apt-get -y install apache2

```

為了保存這個(gè)安裝了apache2的鏡像驶乾,我們需要對(duì)修改進(jìn)行提交

先退出

```

exit

```

現(xiàn)在在鏡像外面,對(duì)前面進(jìn)行修改的鏡像循签,進(jìn)行提交

```

sudo docker ps -l -q

# bc0ca6ccaf58 即修改了的容器的ID

```

對(duì)*修改的部分進(jìn)行提交*

```

sudo docker commit?bc0ca6ccaf58 cjchen/apache2

```

查看新創(chuàng)建的鏡像的內(nèi)容

```

sudo docker images cjchen/apache2

```

前面說的提交级乐,也可以帶有一些信息一起提交,其中webserver為添加的標(biāo)簽

```

sudo docker commit -m="a docker image with apahce2" --author="CJ"?bc0ca6ccaf58?cjchen/apache2:webserver

```

查看新創(chuàng)建的鏡像的詳細(xì)信息

```

sudo docker inspect cjchen/apache2:webserver

```

運(yùn)行新創(chuàng)建的鏡像懦底,其實(shí)和前面是一樣的

```

sudo docker run -t -i cjchen/apache2:webserver /bin/bash

```


#### 補(bǔ)充內(nèi)容:

我們做數(shù)據(jù)分析的唇牧,可能會(huì)遇到一些數(shù)據(jù)要傳輸?shù)絛ocker環(huán)境中,此時(shí)需要使用`docker cp`操作聚唐,可以先通過`docker ps`獲得對(duì)應(yīng)docker的id丐重,隨后

在容器外運(yùn)行

復(fù)制文件到容器內(nèi)部

```

docker cp . 75fe80578445:/opt

```

從容器中復(fù)制文件到本地

```

docker cp 75e80578445:/opt .

```


### 使用Dockerfile構(gòu)建鏡像


### 使用docker串聯(lián)容器

https://yeasy.gitbooks.io/docker_practice/appendix/repo/mysql.html#dockerfile

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市杆查,隨后出現(xiàn)的幾起案子扮惦,更是在濱河造成了極大的恐慌,老刑警劉巖亲桦,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崖蜜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡客峭,警方通過查閱死者的電腦和手機(jī)豫领,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舔琅,“玉大人等恐,你說我怎么就攤上這事”蛤荆” “怎么了课蔬?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長郊尝。 經(jīng)常有香客問我二跋,道長,這世上最難降的妖魔是什么流昏? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任扎即,我火速辦了婚禮吞获,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘铺遂。我一直安慰自己衫哥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布襟锐。 她就那樣靜靜地躺著撤逢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粮坞。 梳的紋絲不亂的頭發(fā)上蚊荣,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音莫杈,去河邊找鬼互例。 笑死,一個(gè)胖子當(dāng)著我的面吹牛筝闹,可吹牛的內(nèi)容都是我干的媳叨。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼关顷,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼糊秆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起议双,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤痘番,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后平痰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汞舱,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宗雇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昂芜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赔蒲,死狀恐怖说铃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘹履,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布债热,位于F島的核電站砾嫉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏窒篱。R本人自食惡果不足惜焕刮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一舶沿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧配并,春花似錦括荡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至观腊,卻和暖如春邑闲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梧油。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工苫耸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人儡陨。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓褪子,卻偏偏與公主長得像,于是被迫代替她去往敵國和親骗村。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嫌褪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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

  • docker安裝 安裝請(qǐng)參考docker官網(wǎng):https://docs.docker.com/engine/ins...
    YONGSSU的技術(shù)站點(diǎn)閱讀 1,085評(píng)論 0 6
  • docker基本概念 1. Image Definition 鏡像 Image 就是一堆只讀層 read-only...
    慢清塵閱讀 8,759評(píng)論 1 21
  • 簡述docker一些常用的操作 查看到docker是否正常運(yùn)行docker info 返回所有docker所有容器...
    翼動(dòng)晴空閱讀 1,011評(píng)論 0 10
  • 一、Docker 簡介 Docker 兩個(gè)主要部件:Docker: 開源的容器虛擬化平臺(tái)Docker Hub: 用...
    R_X閱讀 4,392評(píng)論 0 27
  • 近朱成玉:看圖寫詩(第三篇) 你是暗夜里的繁星閃爍 你的眼睛在光影里波動(dòng) 一片溫柔 你的長發(fā)在黑色里泛著光輝 搖曳...
    天淡云閑閱讀 234評(píng)論 0 5