樹狀結(jié)構(gòu)的網(wǎng)站開網(wǎng)店哪個(gè)平臺靠譜
文章目錄
- docker簡介
- docker架構(gòu)
- 鏡像和容器
- 鏡像有關(guān)的常用命令
- 容器相關(guān)常用命令
docker簡介
Docker是一個(gè)開源的應(yīng)用容器引擎,基于Go語言并遵從Apache2.0協(xié)議開源。
Docker可以讓開方子打包他們的應(yīng)用以及依賴包到一個(gè)輕量級、可移植的容器中,然后發(fā)布到任何流行的Linux上也可以實(shí)現(xiàn)虛擬化。
docker架構(gòu)
Docker運(yùn)行時(shí)分為Docker引擎(也叫服務(wù)端守護(hù)進(jìn)程就是下圖的Docker daemon)和客戶端工具,各種docker命令就是在使用客戶端工具和docker引擎進(jìn)行交互。
docker時(shí)C/S架構(gòu)的服務(wù)器,客戶端向守護(hù)進(jìn)程發(fā)出請求,守護(hù)進(jìn)程完成請求并返回結(jié)果。
docker的服務(wù)器和客戶端可以運(yùn)行在同一臺宿主機(jī)上,也可以分開運(yùn)行。
鏡像和容器
Image(鏡像)
:鏡像就是一個(gè)Linux的文件系統(tǒng),文件系統(tǒng)包含可以運(yùn)行在Linux內(nèi)核的程序以及相應(yīng)的數(shù)據(jù)。
通過鏡像啟動容器,鏡像就像可執(zhí)行的包,其中包括運(yùn)行應(yīng)用程序所需要的所有內(nèi)容:包含代碼、運(yùn)行時(shí)間、庫、環(huán)境變量和配置文件。
Container(容器)
:鏡像和容器的關(guān)系,就像類和實(shí)例,鏡像是靜態(tài)的定義,容器時(shí)鏡像運(yùn)行時(shí)的實(shí)體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停。
鏡像分層
:docker可以在基礎(chǔ)鏡像上安裝一些軟件來擴(kuò)展鏡像
可以寫的容器層
:當(dāng)容器啟動時(shí),一個(gè)新的可寫層被加載到了鏡像的頂部。這一層通常被稱為容器層,容器層之下的都叫鏡像層。
所有對容器的改動-無論添加、刪除還是修改文件都只會發(fā)生在容器層中。只有容器層時(shí)可寫的,容器層下面的所有鏡像層都是只讀的。
容器層保存的時(shí)鏡像變化的部分,不會對鏡像本身進(jìn)行任何修改。
總結(jié)就是容器層是記錄的鏡像層的修改,所有鏡像層都是只讀的,不會被容器修改,所有鏡像可以被多個(gè)容器共享。
鏡像有關(guān)的常用命令
docker實(shí)際上是有一個(gè)提供各種鏡像的遠(yuǎn)程倉庫docker hub
下載鏡像
docker pull name:tage
docker pull ubuntu:20.04 現(xiàn)在被墻了,沒辦法從docker hub下載鏡像了,可以配置一下
vim /etc/docker/daemon.json
將下面代碼粘貼到上面文件
{"registry-mirrors": ["https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com","https://docker.m.daocloud.io","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://your_preferred_mirror","https://dockerhub.icu","https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]
}
重新加載docker配置文件
systemctl daemon-reload
重啟docker服務(wù)
systemctl restart docker.service
查看本地的鏡像
docker images
刪除一個(gè)鏡像
docker image rm name:tagdocker rmi name:tag
創(chuàng)建一個(gè)container的鏡像
docker [container] commit CONTAINER IMAGE_NAME:TAG
將鏡像導(dǎo)出成為一個(gè)本地文件
docker save -o filename.tar IMGE_NAME:TAG
將鏡像從文件中加載出來
docker load -i filename.tar
容器相關(guān)常用命令
根據(jù)一個(gè)鏡像創(chuàng)建容器
docker create -it IMAGE_NAME:TAG
顯示正在運(yùn)行的容器
docker ps
顯示所有容器
docker ps -a
啟動容器
docker start CONTAINER
停止容器
docker start CONTAINER
重啟容器
docker restart CONTAINER
創(chuàng)建并啟動一個(gè)容器
docker run -itd ubuntu:20.04
進(jìn)入容器
docker attach CONTAINER
退出并掛起容器
ctrl + p然后ctrl + q
退出容器并關(guān)閉
ctrl + d
在容器中執(zhí)行命令
docker exec CONTAINEE COMMAND
刪除容器
docker rm CONTAINER
將容器導(dǎo)出為文件.tar
docker export -o xxx.tar CONTAINER
將本地的tar文件導(dǎo)入成鏡像并為鏡像命名
docker import xxx.tar image_name:tag
export/import 會丟棄歷史記錄和元數(shù)據(jù)信息,僅保留當(dāng)時(shí)容器的快照狀態(tài)
save/load會 保存完整記錄,體積更大
查看某容器內(nèi)的全部進(jìn)程
docker top CONTAINER
查看某容器內(nèi)的統(tǒng)計(jì)信息
docker stats
本地和容器之間的數(shù)據(jù)交換
docker cp xxx CONTAINER:xxx
docker cp CONTAINER:xxx xxx
重命名容器
docker rename CONTAINER1 CONTAINER2
修改容器限制
docker update CONTAINER --memory 500MB