一、容器
容器 vs 虛擬機
二、Docker容器使用?
三個概念:
2.1 鏡像
? ? ? ? Docker鏡像除了運行程序也打包了程序運行環(huán)境。
2.2 鏡像倉庫
? ? ? ? 存放鏡像的倉庫,需要login之后拉去響應(yīng)的鏡像。
2.3 容器
? ? ? ? 基于Docker鏡像創(chuàng)建的linux容器,本質(zhì)是宿主機上的一個進(jìn)程,與其他資源隔離。
圖2?Docker容器典型使用流程
- 首先開發(fā)者在開發(fā)環(huán)境機器上開發(fā)應(yīng)用并制作鏡像。
Docker執(zhí)行命令,構(gòu)建鏡像并存儲在機器上。
- 開發(fā)者發(fā)送上傳鏡像命令。
Docker收到命令后,將本地鏡像上傳到鏡像倉庫。
- 開發(fā)者向生產(chǎn)環(huán)境機器發(fā)送運行鏡像命令。
生產(chǎn)環(huán)境機器收到命令后,Docker會從鏡像倉庫拉取鏡像到機器上,基于鏡像運行容器。
三、使用示例
使用Docker將基于Nginx鏡像打包一個容器鏡像,基于容器鏡像運行應(yīng)用,推送到容器鏡像倉庫。
3.1 安裝Docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl restart docker
3.2 Docker打包鏡像
# 使用官方提供的Nginx鏡像作為基礎(chǔ)鏡像
FROM nginx:alpine
# 執(zhí)行一條命令修改Nginx鏡像index.html的內(nèi)容
RUN echo "hello world" > /usr/share/nginx/html/index.html
# 允許外界訪問容器的80端口
EXPOSE 80
執(zhí)行docker build命令打包鏡像。
docker build -t?hello?.
其中-t表示給鏡像加一個標(biāo)簽,也就是給鏡像取名,這里鏡像名為hello。.?表示在當(dāng)前目錄下執(zhí)行該打包命令。
執(zhí)行docker images命令查看鏡像,可以看到hello鏡像已經(jīng)創(chuàng)建成功。您還可以看到一個Nginx鏡像,這個鏡像是從鏡像倉庫下載下來的,作為hello鏡像的基礎(chǔ)鏡像使用。
3.3 本地運行容器鏡像
# docker run -p 8080:80 hello
docker run命令啟動一個容器,命令中-p(端口映射)將本地機器的8080端口映射到容器的80端口,即本地機器的8080端口的流量會映射到容器的80端口,當(dāng)您在本地機器訪問http://127.0.0.1:8080時,就會訪問到容器中,此時瀏覽器中返回的內(nèi)容應(yīng)該就是“hello world”。
3.4 把鏡像推送到鏡像倉庫
????????登錄需要先login到鏡像倉庫,然后給鏡像換一個名字。
# docker tag hello swr.cn-east-3.myhuaweicloud.com/container/hello:v1
- swr.cn-east-3.myhuaweicloud.com是倉庫地址,每個區(qū)域的地址不同。
- container是組織名,組織一般在SWR中創(chuàng)建,如果沒有創(chuàng)建則首次上傳的時候會自動創(chuàng)建,組織名在單個區(qū)域內(nèi)全局唯一,需要選擇合適的組織名稱。
- v1則是hello鏡像分配的版本號。
**********想給本地鏡像打tag,可以不帶倉庫地址;如果要想推送到倉庫,就必須帶倉庫地址,因為后面的docker push 命令,會默認(rèn)把第一個斜線前面的內(nèi)容當(dāng)做倉庫,如果沒有倉庫地址,會帶上默認(rèn)的倉庫地址,類似 “https://index.docker.io/v1” ,后果是這個地址要么不通,要么你上傳到錯誤地方**********
3.5 推送到鏡像倉庫
???執(zhí)行docker push命令就可以將鏡像上傳到SWR。docker push <倉庫地址>/<鏡像名稱>:<標(biāo)簽>文章來源:http://www.zghlxwxcb.cn/news/detail-804086.html
# docker push swr.cn-east-3.myhuaweicloud.com/container/hello:v1
當(dāng)需要使用該鏡像時,使用docker pull命令拉取(下載)該命令即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-804086.html
# docker pull swr.cn-east-3.myhuaweicloud.com/container/hello:v1
到了這里,關(guān)于容器與K8s的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!