-
Docker
常用命令
docker verision--> 版本docker ps—> 查看當(dāng)前容器docker ps -a—> 查看所有容器docker images—> 查看當(dāng)前所有鏡像docker search nginx—> 搜索可用的 docker 鏡像docker pull nginx—> 下載鏡像容器docker run nginx echo "hello world"—>在docker容器中運(yùn)行"hello world"- docker run 命令有兩個(gè)參數(shù),一個(gè)是鏡像名,一個(gè)是要在鏡像中運(yùn)行的命令。
docker run learn/tutorial apt-get install -y ping- 基于 ubuntu 的鏡像可以使用 apt-get 的命令來安裝
docker commit—> 保存對(duì)容器的修改docker run learn/ping ping www.baidu.comdocker inspect id查看運(yùn)行中鏡像的詳細(xì)狀態(tài)docker login—> 登錄docker push yourname/imagesname—> 提交鏡像到自己的 Docker Hubdocker run -p 80:80 name/imagesname—>通過 -p 參數(shù)對(duì)外指定 80 端口?
Dockerfile
FROM ubuntu:14.04 // 指定鏡像基于ubuntu 14.04構(gòu)建 MAINTAINER saymagic saymagic@163.com // 創(chuàng)建鏡像的用戶 RUN apt-get update // shell RUN apt-get install -y nginx COPY ./www /usr/share/nginx/html // copy EXPOSE 80 // 暴露80端口 CMD ["nginx", "-g", "daemon off;"] // 運(yùn)行容器時(shí)開啟nginxhttp://www.docker.org.cn/dockerppt/114.html
?
Docker網(wǎng)絡(luò)配置
Dokcer 通過使用 Linux 橋接提供容器之間的通信,docker0 橋接接口的目的就是方便 Docker 管理。
- creates the docker0 bridge if not present
- # 如果 docker0 不存在則創(chuàng)建
- searches for an IP address range which doesn’t overlap with an existing route
- # 搜索一個(gè)與當(dāng)前路由不沖突的 ip 段
- picks an IP in the selected range
- # 在確定的范圍中選擇 ip
- assigns this IP to the docker0 bridge
- # 綁定 ip 到 docker0
Docker 默認(rèn)有四種網(wǎng)絡(luò)模式
-
host 模式,使用 --net=host 指定。
- 如果啟動(dòng)容器的時(shí)候使用 host 模式,那么這個(gè)容器將不會(huì)獲得一個(gè)獨(dú)立的 Network Namespace,而是和宿主機(jī)共用一個(gè) Network Namespace。容器將不會(huì)虛擬出自己的網(wǎng)卡,配置自己的 IP 等,而是使用宿主機(jī)的 IP 和端口。
- 容器的其他方面,如文件系統(tǒng)、進(jìn)程列表等還是和宿主機(jī)隔離的。
-
container 模式,使用 --net=container:NAMEorID 指定。
- 這個(gè)模式指定新創(chuàng)建的容器和已經(jīng)存在的一個(gè)容器共享一個(gè) Network Namespace,而不是和宿主機(jī)共享。新創(chuàng)建的容器不會(huì)創(chuàng)建自己的網(wǎng)卡,配置自己的 IP,而是和一個(gè)指定的容器共享 IP、端口范圍等。
-
none 模式,使用 --net=none 指定。
- 這個(gè)模式和前兩個(gè)不同。在這種模式下,Docker 容器擁有自己的 Network Namespace,但是,并不為 Docker容器進(jìn)行任何網(wǎng)絡(luò)配置。也就是說,這個(gè) Docker 容器沒有網(wǎng)卡、IP、路由等信息。需要我們自己為 Docker 容器添加網(wǎng)卡、配置 IP 等。
-
bridge 模式,使用 --net=bridge 指定,默認(rèn)設(shè)置。
bridge 模式是 Docker 默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會(huì)為每一個(gè)容器分配 Network Namespace、設(shè)置 IP 等,并將一個(gè)主機(jī)上的 Docker 容器連接到一個(gè)虛擬網(wǎng)橋上。
當(dāng) Docker server 啟動(dòng)時(shí),會(huì)在主機(jī)上創(chuàng)建一個(gè)名為 docker0 的虛擬網(wǎng)橋,此主機(jī)上啟動(dòng)的 Docker 容器會(huì)連接到這個(gè)虛擬網(wǎng)橋上。虛擬網(wǎng)橋的工作方式和物理交換機(jī)類似,這樣主機(jī)上的所有容器就通過交換機(jī)連在了一個(gè)二層網(wǎng)絡(luò)中。
-
接下來就要為容器分配 IP 了,Docker 會(huì)從 RFC1918 所定義的私有 IP 網(wǎng)段中,選擇一個(gè)和宿主機(jī)不同的IP地址和子網(wǎng)分配給 docker0,連接到 docker0 的容器就從這個(gè)子網(wǎng)中選擇一個(gè)未占用的 IP 使用。如一般 Docker 會(huì)使用 172.17.0.0/16 這個(gè)網(wǎng)段,并將 172.17.42.1/16 分配給 docker0 網(wǎng)橋
(在主機(jī)上使用 ifconfig 命令是可以看到 docker0 的,可以認(rèn)為它是網(wǎng)橋的管理接口,在宿主機(jī)上作為一塊虛擬網(wǎng)卡使用)
Docker基礎(chǔ)總結(jié)
最后編輯于 :
?著作權(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ù)。
【社區(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)容
- 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡(jiǎn)介 Docke...
- 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機(jī)是訪問不到的。此外,除了...
- 很多人可能在項(xiàng)目中已經(jīng)使用docker很長時(shí)間,但是卻很少有人知道docker的網(wǎng)絡(luò)是如何實(shí)現(xiàn)的。我應(yīng)該就算是很多...
- 找不到對(duì)象僅僅是因?yàn)殚L得丑嗎?找不到對(duì)象僅僅是因?yàn)楦F嗎?找不到對(duì)象僅僅是因?yàn)榇绬幔?《學(xué)會(huì)提問》的第九章告訴我們:...