製作自己的docker映象主要有如下兩種方式:
通過docker run命令啟動容器
修改docker映象內容
docker commit提交修改的映象
docker run新的映象
使用 docker commit 來擴充套件乙個映象比較簡單,但是不方便在乙個團隊中分享。我們可以使用 docker build 來建立乙個新的映象。為此,首先需要建立乙個 dockerfile,包含一些如何建立映象的指令。
dockerfile 基本的語法
構建映象的步驟
1.新建乙個目錄和乙個 dockerfile
$ mkdir new_folder
$ cd new_folder
$ touch dockerfile
2.編寫dockerfile,dockerfile中每一條指令都建立映象的一層,例如:
# 這裡是注釋
# 設定繼承自哪個映象
from ubuntu:14.04
# 下面是一些建立者的基本資訊
maintainer birdben ([email protected])
# 在終端需要執行的命令
run apt-get install -y openssh-server
run mkdir -p /var/run/sshd
3.編寫完成 dockerfile 後可以使用 docker build 來生成映象。
$ sudo docker build -t="birdben/ubuntu:v1" .
# 下面是一堆構建日誌資訊
############
我是日誌
############
# 引數:
# -t 標記來新增 tag,指定新的映象的使用者和映象名稱資訊。
# 「.」 是 dockerfile 所在的路徑(當前目錄),也可以替換為乙個具體的 dockerfile 的路徑。
# 以互動方式執行docker
$ docker run -it birdben/ubuntu:v1 /bin/bash
# 執行docker時指定配置
$ sudo docker run -d -p 10.211
.55.4:9999:22 ubuntu:tools '/usr/sbin/sshd' -d
# 引數:
# -i:表示以「互動模式」執行容器,-i 則讓容器的標準輸入保持開啟
# -t:表示容器啟動後會進入其命令列,-t 選項讓docker分配乙個偽終端(pseudo-tty)並繫結到容器的標準輸入上
# -v:表示需要將本地哪個目錄掛載到容器中,格式:-v 《宿主機目錄》:《容器目錄》,-v 標記來建立乙個資料卷並掛載到容器裡。在一次 run 中多次使用可以掛載多個資料卷。
# -p:指定對外80埠
# 不一定要使用「映象 id」,也可以使用「倉庫名:標籤名」
docker的網路功能相對簡單,沒有過多複雜的配置,docker預設使用birdge橋接方式與容器通訊,啟動docker後,宿主機上會產生docker0這樣乙個虛擬網路介面, docker0不是乙個普通的網路介面, 它是乙個虛擬的乙太網橋,可以為繫結到docker0上面的網路介面自動**資料報,這樣可以使容器與宿主機之間相互通訊。每次docker建立乙個容器,會產生一對虛擬介面,在宿主機上執行ifconfig,會發現多了乙個類似veth****這樣的網路介面,它會繫結到docker0上,由於所有容器都繫結到docker0上,容器之間也就可以通訊。
在宿主機上執行ifconfig,會看到docker0這個網路介面, 啟動乙個container,再次執行ifconfig, 會有乙個類似veth****的inte***ce,每個container的預設路由是宿主機上docker0的ip,在container中執行netstat -r可以看到如下圖所示內容:
container路由
在容器中使用netstat -r命令檢視容器的ip位址
在宿主機中使用ifconfig檢視docker0的ip位址docker0
當容器退出之後,veth*虛擬介面也會被銷毀。
Docker實戰(二) 容器使用和映象製作
安裝好之後,我們就可以來開始docker之旅了,我們現在的docker還是乙個 裸 docker,上面沒有容器,等一下,什麼式容器?所謂容器就是docker中用來執行應用的,docker的容器很輕量級,但功能卻強悍的很。也沒有映象。映象?映象簡單理解就是容器的唯讀版本,用來方便儲存與交流。此時,我們...
製作自己的docker映象並執行
docker pull hub.c.163.com library tomcat latesta.檢視映象 docker images vim dockerfile docker內容 from hub.c.163.com library tomcat 自己的映象以tomcat映象為起點 mainta...
docker中如何製作自己的基礎映象
舉個例子 現在把自己的開發環境打包,取名為centos6 base.tar,然後在docker中,以centos6 base.tar作為基準映象。1.建立自己的映象,放置於 root目錄下 tar numeric owner exclude proc exclude sys cvf centos6 ...