docker命令及簡(jiǎn)單使用

docker基礎(chǔ)

鏡像:是一個(gè)只讀的模板,類似于安裝系統(tǒng)用到的那個(gè)iso文件,我們通過鏡像來完成各種應(yīng)用的部署。鏡像可以用來創(chuàng)建Docker容器

容器:鏡像類似于操作系統(tǒng),而容器類似于虛擬機(jī)本身。它可以被啟動(dòng)、開始、停止、刪除等操作,每個(gè)容器都是相互隔離的。可以把容器看做是一個(gè)簡(jiǎn)易版的linux環(huán)境(包括root用戶權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。

倉庫:存放鏡像的一個(gè)場(chǎng)所,倉庫分為公開倉庫和私有倉庫。 最大的公開倉庫是Docker hub(hub.docker.com),國(guó)內(nèi)公開倉庫

(dockerpool.com)

docker基礎(chǔ)命令

docker search ubuntu ---查找ubuntu系統(tǒng)的容器

docker pull ubuntu ---下載ubuntu容器

docker images ---查看現(xiàn)有的鏡像

docker ps?????---查看docker的進(jìn)程

docker ps -a??---查看docker所有運(yùn)行過的進(jìn)程

docker rm 名字 ---刪除已經(jīng)停止進(jìn)程的容器

docker rmi ubuntu ---刪除鏡像

docker start -i 名字 ---啟動(dòng)已經(jīng)關(guān)閉的進(jìn)程

docker stop 名字??---關(guān)閉運(yùn)行的容器

docker run --name??起名字 -d??容器 /bin/bash??--- -d是以后臺(tái)的形式運(yùn)行

docker logs -t peiqi12??--- t為顯示時(shí)間的形式顯示進(jìn)程容器log日志

docker run -p 41061:22 -p 8888:80??-d -v /web tomsik68/xampp ---訪問的時(shí)候利用ssh訪問鏡像

ssh -p 41061 root@localhost??---密碼root可以連接ssh進(jìn)入xampp主機(jī)

在www目錄下創(chuàng)建index.html即可。

訪問url xx.xx.xx.xx:8888/www/index.html

參數(shù)說明

-a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項(xiàng);

-d: 后臺(tái)運(yùn)行容器,并返回容器ID;

-i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;

-t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;

--name="nginx-lb": 為容器指定一個(gè)名稱;

--dns 8.8.8.8: 指定容器使用的DNS服務(wù)器,默認(rèn)和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默認(rèn)和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 設(shè)置環(huán)境變量;

--env-file=[]: 從指定文件讀入環(huán)境變量;

--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運(yùn)行;

-m :設(shè)置容器使用內(nèi)存最大值;

--net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型;

--link=[]: 添加鏈接到另一個(gè)容器;

--expose=[]: 開放一個(gè)端口或一組端口;

實(shí)戰(zhàn)運(yùn)行


上述命令我們開啟了 docker服務(wù),并且以交互式命令并且以偽終端(因?yàn)閐ocker都是以進(jìn)程的形式運(yùn)行)的形式,進(jìn)入了docker交互頁面,參考上面-i -t,并且給容器名字命名為 ubuntu,主機(jī)名為 test。 /bin/bash的作用是因?yàn)閐ocker后臺(tái)必須運(yùn)行一個(gè)進(jìn)程,否則容器就會(huì)退出,在這里表示啟動(dòng)容器后啟動(dòng)bash。所有docker容器都是以進(jìn)程而存活,如果沒有進(jìn)程那么自動(dòng)關(guān)閉。

這樣進(jìn)入搭建docker,如果退出終端的話,相應(yīng)進(jìn)程也會(huì)關(guān)閉,docker也就終止,我們接下來介紹一個(gè)長(zhǎng)期能夠搭建在web上的docker命令。



我們用端口映射進(jìn)入docker進(jìn)程, -p 物理機(jī)端口:容器端口。這里設(shè)置了兩個(gè)端口,一個(gè)是方便進(jìn)入容器管理,另一個(gè)是映射80端口服務(wù),-d返回容器ID,-v稱之為 掛載也稱為存儲(chǔ)卷。此時(shí)在/www目錄寫web,整套的 docker web服務(wù)進(jìn)程搭建完畢。

這樣便會(huì)在后臺(tái)進(jìn)程運(yùn)行,其他命令如:

docker run hello-world

只是一個(gè)進(jìn)程,運(yùn)行完畢就消失了。


總結(jié)

1.docker 可以理解為開啟一個(gè)或一些進(jìn)程,但是環(huán)境和物理機(jī)是分開的,可以用端口映射,映射到物理機(jī),在物理機(jī)上是一套完整的操作系統(tǒng),會(huì)占用其他資源,但是docker是進(jìn)程級(jí)別的,資源全部用在進(jìn)程上,所以速度會(huì)快。

2.可一臺(tái)服務(wù)器搭建多個(gè)分離的linux環(huán)境,Docker容器可以理解為在沙盒中運(yùn)行的進(jìn)程,這個(gè)沙盒包含了該進(jìn)程運(yùn)行所必須的資源,包括文件系統(tǒng)、系統(tǒng)類庫、shell 環(huán)境等。但這個(gè)沙盒默認(rèn)是不會(huì)運(yùn)行任何程序的,需要在沙盒中運(yùn)行一個(gè)進(jìn)程來啟動(dòng)某一個(gè)容器。這個(gè)進(jìn)程是該容器的唯一進(jìn)程,所以當(dāng)該進(jìn)程結(jié)束的時(shí)候,容器也會(huì)完全停止。

3.使用方便速度快,由于是一個(gè)進(jìn)程,所以只需要一個(gè)命令打開進(jìn)程便可以開啟一個(gè)web服務(wù)上線一套網(wǎng)站等且環(huán)境與物理機(jī)分離,對(duì)物理機(jī)來說比較安全?;蛘咂渌?wù)等。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容