溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker是什么及怎么使用

發(fā)布時間:2022-05-26 14:49:43 來源:億速云 閱讀:155 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹了Docker是什么及怎么使用的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Docker是什么及怎么使用文章都會有所收獲,下面我們一起來看看吧。

概述

docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的  linux 機器上,也可以實現(xiàn) 虛擬化 。

docker的配圖很形象。一只鯨魚(容器)上面裝載著貨物(應(yīng)用)。

docker安裝

debian/ubuntu等系統(tǒng)可以直接下載deb進行安裝

sudo dpkg -i package-name.deb

安裝好docker之后,執(zhí)行下面語句確認(rèn)docker是否安裝成功

sudo docker info

如果docker沒有啟動,則執(zhí)行

sudo /etc/init.d/docker start
或
sudo service docker start

執(zhí)行下面的語句啟動一個docker容器

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

docker run ,運行容器的命令 -i -t , 執(zhí)行docker以交互(將執(zhí)行的過程顯示到shell中)的形式啟動容器 ubuntu:14.04 , ubuntu表示鏡像名,14.04表示鏡像的標(biāo)簽 /bin/bash , 表示要讓啟動的容器執(zhí)行/bin/bash語句

首次執(zhí)行這段代碼時,docker會下載ubuntu:14.04對應(yīng)的鏡像。

docker鏡像和容器

鏡像和容器,是docker中最最重要的兩個概念。

鏡像:在某一操作系統(tǒng)(一般是linux)的基礎(chǔ)上,添加某個服務(wù)(如mysql服務(wù)),所構(gòu)成的一個處于靜態(tài)的系統(tǒng)鏡像,可以理解為某系統(tǒng)的iso鏡像文件。(我自己的理解[捂臉])

容器:根據(jù)鏡像安裝之后的狀態(tài)

sudo docker images

上面語句列出本電腦(宿主機)上的鏡像

sudo docker pull redis:3

上面語句可以從docker官方hub中獲取一個鏡像名為redis且標(biāo)簽為3的鏡像。看它的名字可以知道是安裝了redis 3 版本的鏡像

鏡像的自定義 創(chuàng)建一個安裝好redis服務(wù)器的鏡像

1 . 創(chuàng)建目錄和dockerfile

Docker是什么及怎么使用

2. 下載163的源文件到redis文件夾下,和dockfile同一目錄下(由于ubuntu原來的軟件源賊慢,所以將其替換)

3. 編寫dockfile,dockfile中的內(nèi)容如下

from ubuntu:14.04
maintainer dkpaulwen "wen229267643@gmail.com"

add $pwd/sources.list.trusty /etc/apt/sources.list
run ["apt-get","-y","update"]
run ["apt-get","-y","install","redis-server","redis-tools"]

expose 6379

cmd ["/usr/bin/redis-server"]

from ubuntu:14.04 : 表明我們所構(gòu)建的鏡像是基于ubuntu:14.04鏡像的 maintainer name email : 構(gòu)建人的名字和郵箱 add path1 path2 : 將宿主機中的path1文件/目錄 復(fù)制到 docker中 run ["command","option",...] : 表示執(zhí)行command命令 , 也可以寫作 run command option parameter 這樣的形式。上面執(zhí)行的兩個語句更新了源,安裝了redis expose 6379 : 表示docker機會將6379端口暴露給宿主機,可以將宿主機的某個端口與這個端口連接,這樣就可以在外部使用這個容器中運行的應(yīng)用 cmd ["command","option",...] : 表示啟動容器時若不指定執(zhí)行的命令,就執(zhí)行這個命令指定的命令

4 . 構(gòu)建鏡像

在redis目錄下執(zhí)行命令

sudo docker build -t dkpaulwen/redis .

-t 選項用來告訴docker daemon要構(gòu)建的鏡像的倉庫名和鏡像名為dkpaulwen/redis,其中dkpaulwen為倉庫名,redis為鏡像名

sudo docker images

查看鏡像

root@izm5ejdk51ejf0nkzwz3koz:~/dockers/redis# docker images
repository   tag     image id   created    virtual size
dkpaulwen/redis  latest    eb4b76ccb49c  18 minutes ago  213.4 mb

5. 用自定義的鏡像創(chuàng)建容器

執(zhí)行下面的命令

sudo docker run -d -p 6379 --name myredis dkpaulwen/redis

-d 選項告訴docker以后臺的形式啟動容器 -p 6379 告訴docker將docker機的6379端口與宿主機的隨機端口(隨機分配一個大端口號)相關(guān)聯(lián),也可以這樣 -p 6666:6379,前者是宿主機,后者docker機 --name myredis 指定容器名 dkpaulwen/redis 是鏡像名 這里沒有指定要執(zhí)行的命令,默認(rèn)執(zhí)行dockerfile中的cmd指定的命令

6. 查看創(chuàng)建的docker容器

docker ps 命令

root@izm5ejdk51ejf0nkzwz3koz:~/dockers/redis# docker ps
container id  image    command     created    status    ports      names
3e1366140973  dkpaulwen/redis  "/usr/bin/redis-serve" 23 minutes ago  up 23 minutes  0.0.0.0:32788->6379/tcp myredis

這里包含容器的一些屬性,其中一個是ports——端口,可以看到,0.0.0.0:32788 -> 6379/tcp ,32788是宿主機端口,6379是被關(guān)聯(lián)的docker容器端口,類型是tcp

7. 連接這個容器

redis-cli -h localhost -p 32788
root@izm5ejdk51ejf0nkzwz3koz:~/dockers/redis# redis-cli -h localhost -p 32788
localhost:32788> get username
"glen"
localhost:32788>

因為我在我的服務(wù)器上安裝的docker,所以我也可以在自己的電腦上連接服務(wù)器上的docker容器

paul@paul-inspiron-5420:~$ redis-cli -h www.wenjingyi.top -p 32788
www.wenjingyi.top:32788> get username
"glen"
www.wenjingyi.top:32788>

關(guān)于“Docker是什么及怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Docker是什么及怎么使用”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI