Docker的使用方法小結(jié)

對(duì)docker的理解

docker 是linux容器的管理引擎。
docker提供隔離的運(yùn)行環(huán)境。文件系統(tǒng)隔離、網(wǎng)絡(luò)隔離、進(jìn)程好隔離、進(jìn)程間通信
隔離。

docker容器分類(lèi)

1、系統(tǒng)類(lèi)容器 ubuntu、CentOs、Debian等操作系統(tǒng)容器
2、應(yīng)用容器 2048應(yīng)用容器
3、存儲(chǔ)類(lèi)容器 MySql、MongoDB容器

Docker依賴(lài)的Linux內(nèi)核特性

Namespaces命名空間、Controlgroups(cgroup)控制組

1、Namespaces命名空間:提供系統(tǒng)資源的隔離(進(jìn)程、文件系統(tǒng)、網(wǎng)絡(luò)...)

PID(ProcessID) 進(jìn)程隔離
NET(NetWork) 管理網(wǎng)絡(luò)接口
IPC(InterProcess Communitication) 管理跨進(jìn)程通信的訪問(wèn)
UTS(Unix Timesharing System) 隔離內(nèi)核和版本標(biāo)識(shí)
MNT(Mount) 管理掛載點(diǎn)(文件系統(tǒng))

2、Control Groups控制組:用來(lái)分配資源

資源限制
優(yōu)先級(jí)設(shè)定
資源計(jì)量
資源控制

Docker容器的能力

文件系統(tǒng)隔離:每個(gè)容器都有自己的root文件系統(tǒng)
進(jìn)程隔離:每個(gè)容器都運(yùn)行在自己的進(jìn)程環(huán)境中
網(wǎng)絡(luò)隔離:容器間的虛擬網(wǎng)絡(luò)接口和IP地址都是分開(kāi)的
資源隔離和分組:使用cgroups將CPU和內(nèi)存之類(lèi)的資源獨(dú)立分配給每個(gè)Docker容器

Docker的C/S模式

Docker是以客戶端和守護(hù)進(jìn)程的模式運(yùn)行的

Docker的C/S模式通過(guò)socket鏈接

unix:///var/run/docker.sock docker默認(rèn)的客戶端與守護(hù)進(jìn)程鏈接的方式
tcp://host:port
fd://socketfd

Docker的使用方法

1、使用非root用戶,好處是每次使用docker命令可以不再以root的身份運(yùn)行
sudo groupadd docker添加docker用戶組
sudo gpasswd -a ${USR} docker 將當(dāng)前用戶添加進(jìn)docker組中
sudo service docker restart 重新啟動(dòng)docker的用戶組
2、查看宿主主機(jī)收否運(yùn)行docker
ps -ef | grep docker
3、service管理命令
sudo service docker start 啟動(dòng)docker服務(wù)
sudo service docker stop 停止docker服務(wù)
sudo service docker restart 重啟docker服務(wù)
4、docker的啟動(dòng)選項(xiàng)
docker -d [OPTIONS]
-d 以守護(hù)形式運(yùn)行
5、與docker運(yùn)行相關(guān)的選項(xiàng):
-D, --debug=falsedebug模式的開(kāi)啟
-e, --exec-drive="native"docker運(yùn)行時(shí)使用的驅(qū)動(dòng)、模式
-g, --graph="/var/lib/docker" docker的目錄
--icc=true
-l, --log-level="info"日志級(jí)別
--label=[]
-p, --pidfile="/var/run/docker.pid"進(jìn)程id
6、ubuntu鏡像下載以及容器的創(chuàng)建和使用
docker pull ubuntu下載官方的最新版本鏡像
docker pull ubuntu:$VersionID 下載制定版本的鏡像
docker run -it --name $ContainerName ubuntu /bin/bash 創(chuàng)建一個(gè) 容器并進(jìn)入-i格式化輸出 -t生成一個(gè)偽終端與本地終端綁定 --name制定容器名稱(chēng)
docker start $ContainerName 啟動(dòng)一個(gè)已有的容器
docker stop $ContainerName 停止一個(gè)正在運(yùn)行的容器
docker exec -i -t $ContainerName /bin/bash 進(jìn)入一個(gè)正在運(yùn)行的容器
7、docker常用的一些命令
docker ps查看正在運(yùn)行的容器
docker ps -a查看已有的容器(包括正在運(yùn)行和已經(jīng)停止運(yùn)行的器)
docker search $Image:$VersionID 在官方的倉(cāng)庫(kù)中搜索目標(biāo)鏡像
docker rm $ContainerName刪除一個(gè)沒(méi)有運(yùn)行的容器(如果要?jiǎng)h除的容器正在運(yùn)行,要使用stop命令先停止容器運(yùn)行再刪除)
docker rm -v $ContainerName刪除容器是連同與容器綁定的數(shù)據(jù)卷一并刪除
docker rmi $Image刪除一個(gè)鏡像
docker --help 使用docker命令的幫助文檔可以快速的查找需要的參數(shù)
docker version 查看當(dāng)前使用的docker的版本信息
docker inspect $ContainerName/$Image查看容器或者鏡像的詳細(xì)數(shù)據(jù)信息(Json格式)
docker cp /LocalFilePath $Container:/ContainerFilePath將宿主主機(jī)指定路徑的文件拷貝到容器指定文件路徑
docker cp $Container:/ContainerFilePath /LocalFilePath將容器的指定路徑的文件拷貝到宿主主機(jī)的指定文件路徑
docker inspect -- format'{{.NetworkSettings.IPAddress}}'$ContainerName/$ContainerID查看容器的ip地址

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Docker — 云時(shí)代的程序分發(fā)方式 要說(shuō)最近一年云計(jì)算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,849評(píng)論 15 147
  • 一、Docker 簡(jiǎn)介 Docker 兩個(gè)主要部件:Docker: 開(kāi)源的容器虛擬化平臺(tái)Docker Hub: 用...
    R_X閱讀 4,521評(píng)論 0 27
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
    極客圈閱讀 10,753評(píng)論 0 120
  • ——我聽(tīng)聞的張幼儀(2011-06-09) 那是一個(gè)才俊輩出的年代,那個(gè)年代,才子佳人的故事自然不會(huì)少。 風(fēng)光無(wú)限...
    山千黛閱讀 352評(píng)論 1 1
  • 距高考只有一百多天了,希望孩子們放下包袱努力沖刺……現(xiàn)實(shí)的社會(huì)一紙文憑或許并不是唯一的就業(yè)機(jī)會(huì),但若沒(méi)有文憑你...
    敝開(kāi)心扉閱讀 334評(píng)論 0 0

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