
image.png
上節(jié)課我們創(chuàng)建了一個(gè)jdk鏡像 我們?cè)诒緳C(jī)拿到一個(gè)jdk文件夾之后 把它拷貝到鏡像里 在我們創(chuàng)建容器時(shí) 容器里面通過相關(guān)配置可以直接運(yùn)行java程序

image.png
我們上節(jié)課執(zhí)行docker build -t centos:jdk .命令
出現(xiàn)下面一段內(nèi)容

image.png
為什么會(huì)出現(xiàn)這個(gè)呢? 這里的context上下文 是什么 to Docker daemon又如何理解
官方解釋如下https://docs.docker.com/engine/reference/builder/#usage

image.png

image.png
實(shí)際上docker本身是一個(gè)cs架構(gòu)的程序 而daemon作為守護(hù)進(jìn)程(服務(wù)端)
當(dāng)我們?cè)诮K端中輸入docker images列出docker 鏡像時(shí) 不是操作的服務(wù)端 是通過docker給我們的客戶端發(fā)送一個(gè)命令 這個(gè)命令的執(zhí)行是由docker客戶端來執(zhí)行的(內(nèi)部有個(gè)程序調(diào)用docker服務(wù)端api)服務(wù)端首先放出一堆a(bǔ)pi 然后有客戶端調(diào)用(當(dāng)然也可以自己通過程序?qū)懣蛻舳耍╬ython或者go))
所以上節(jié)課執(zhí)行docker build -t centos:jdk . 的時(shí)候 需要把當(dāng)前上下文 這里的.點(diǎn)是把當(dāng)前目錄下的文件作為上下文 默認(rèn)會(huì)尋找Dockerfile 如果有其他文件會(huì)把這些文件發(fā)送到服務(wù)端 所以當(dāng)前上下文就是指 build命令的點(diǎn)(.)
docker提供了3種連接方式 (這節(jié)課使用windows8.1 tcp方式通過遠(yuǎn)程連接docker)docker在虛擬機(jī)上

image.png
首先查看下連接方式
ps -ef | grep docker

image.png
可以看見當(dāng)前配置不支持tcp遠(yuǎn)程連接docker服務(wù)
接下來配置下遠(yuǎn)程訪問

image.png
首先進(jìn)入該文件夾

image.png
ls查看 可以看見有各種service文件 可以對(duì)其進(jìn)行啟動(dòng) 其中我們要修改的就是docker.service文件

image.png

image.png
回車出現(xiàn)如下

image.png
編輯內(nèi)容
添加下面內(nèi)容

image.png
注釋掉上面的 添加下面的 意思是連接方式支持兩種本機(jī)使用unix方式連接 外部使用tcp方式連接
保存
systemctl daemon-reload(把守護(hù)進(jìn)程重新裝載)

image.png
systemctl restart docker 重新啟動(dòng)docker

image.png
ps -ef | grep docker

image.png
可以發(fā)現(xiàn)出現(xiàn)了tcp的連接方式
等下我們可以使用tcp方式連接docker并且操作
連接方式在官方https://docs.docker.com/develop/sdk/examples/處可以看見
后面我們會(huì)使用管理工具對(duì)docker進(jìn)行操作 這節(jié)課我們演示下python方式連接操作docker

image.png

image.png
首先虛擬機(jī)中防火墻需要放行2375端口 否則外部連接不到

image.png
在pychram中新建test.py文件
內(nèi)容如下

image.png
運(yùn)行結(jié)果

image.png
與在xshell中執(zhí)行docker images結(jié)果相同

image.png

image.png

image.png
更多相關(guān)api請(qǐng)看官方示例