概述
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn) 虛擬化 。
docker的配圖很形象。一只鯨魚(容器)上面裝載著貨物(應(yīng)用)。
docker安裝
debian/ubuntu等系統(tǒng)可以直接下載deb進(jìn)行安裝
docker repo
sudo dpkg -i package-name.deb
其他平臺參照 docker官網(wǎng) docker hello world
安裝好docker之后,執(zhí)行下面語句確認(rèn)docker是否安裝成功
sudo docker info
如果docker沒有啟動,則執(zhí)行
sudo /etc/init.d/docker start或sudo service docker start
執(zhí)行下面的語句啟動一個(gè)docker容器
sudo docker run -i -t ubuntu:14.04 /bin/bash
docker run ,運(yùn)行容器的命令 -i -t , 執(zhí)行docker以交互(將執(zhí)行的過程顯示到shell中)的形式啟動容器 ubuntu:14.04 , ubuntu表示鏡像名,14.04表示鏡像的標(biāo)簽 /bin/bash , 表示要讓啟動的容器執(zhí)行/bin/bash語句
首次執(zhí)行這段代碼時(shí),docker會下載ubuntu:14.04對應(yīng)的鏡像。
docker鏡像和容器
鏡像和容器,是docker中最最重要的兩個(gè)概念。
鏡像:在某一操作系統(tǒng)(一般是linux)的基礎(chǔ)上,添加某個(gè)服務(wù)(如mysql服務(wù)),所構(gòu)成的一個(gè)處于靜態(tài)的系統(tǒng)鏡像,可以理解為某系統(tǒng)的iso鏡像文件。(我自己的理解[捂臉])
容器:根據(jù)鏡像安裝之后的狀態(tài)
sudo docker images
上面語句列出本電腦(宿主機(jī))上的鏡像
sudo docker pull redis:3
上面語句可以從docker官方hub中獲取一個(gè)鏡像名為redis且標(biāo)簽為3的鏡像。看它的名字可以知道是安裝了redis 3 版本的鏡像
鏡像的自定義 創(chuàng)建一個(gè)安裝好redis服務(wù)器的鏡像
1 . 創(chuàng)建目錄和Dockerfile

2. 下載163的源文件到redis文件夾下,和Dockfile同一目錄下(由于ubuntu原來的軟件源賊慢,所以將其替換)
3. 編寫Dockfile,Dockfile中的內(nèi)容如下
FROM ubuntu:14.04MAINTAINER dkpaulwen "wen229267643@gmail.com"ADD $PWD/sources.list.trusty /etc/apt/sources.listRUN ["apt-get","-y","update"]RUN ["apt-get","-y","install","redis-server","redis-tools"]EXPOSE 6379CMD ["/usr/bin/redis-server"]
FROM ubuntu:14.04 : 表明我們所構(gòu)建的鏡像是基于ubuntu:14.04鏡像的 MAINTAINER name email : 構(gòu)建人的名字和郵箱 ADD path1 path2 : 將宿主機(jī)中的path1文件/目錄 復(fù)制到 docker中 RUN ["command","option",...] : 表示執(zhí)行command命令 , 也可以寫作 RUN command option parameter 這樣的形式。上面執(zhí)行的兩個(gè)語句更新了源,安裝了redis EXPOSE 6379 : 表示docker機(jī)會將6379端口暴露給宿主機(jī),可以將宿主機(jī)的某個(gè)端口與這個(gè)端口連接,這樣就可以在外部使用這個(gè)容器中運(yùn)行的應(yīng)用 CMD ["command","option",...] : 表示啟動容器時(shí)若不指定執(zhí)行的命令,就執(zhí)行這個(gè)命令指定的命令
4 . 構(gòu)建鏡像
在redis目錄下執(zhí)行命令
sudo docker build -t dkpaulwen/redis .
新聞熱點(diǎn)
疑難解答
圖片精選