1. 程式人生 > >運維篇: docker 如何製作映象?

運維篇: docker 如何製作映象?

1 將容器 變成 映象

2 buildfile 建立新映象。

常見的一些問題?

把一個容器 變成一個映象。

docker commit <容器id> [版本號]

當我們在製作自己的映象的時候,會在container中安裝一些工具,修改配置,
如果不做commit儲存起來, 那麼 container停止之後再啟動,這些更改就消失了。。

!!
docker create –name myjava3 -it java /bin/bash 建立容器

docker start myjava3 啟動映象

docker ps 檢視當前的docker 進城。

docker exec -it contierid /bin/bash # 進入這個容器
ls : 檢視容器當前目錄
mkdir 在容器中建立目錄

docker commit id myjava

docker images 檢視當前映象。

commint:
好處:方便快捷。
缺點: 不規範 無法自動化

buildfile 模式

是最標準的做法 也是一個打包的技術
提供了一個工具

一個 java 映象啊的 builedfile檔案

from (從哪個映象開始)maintainer (誰維護的)
env ( 增加一些 環境變數 傳輸環境變數)
run (在容器內執行 linux 命令安裝一些包)

~~

docker build -t leader/java -

將前面的檔案 build 出來
在當前目錄下查詢這個檔案

在容器編譯過程中 所有的指令都是在容器內部執行的,
和 宿主機無關。

run curl http://baidu.com
會發現無法連線。
是因為在docker容器中沒有設定代理

加上這個環境變數後就可以訪問外部網站web了。

複雜案例實戰

以 ubto 新增 java tomcat ssh server 負責映象的做法

FROM ubuntu
MAINTAINER “[email protected]
RUN echo “deb http://archive.ubuntu.com/ubuntn precise main universe”

/etc/apt/sources.list
Run apit-get update
RUN apt-get install -y openssl-server
Run mkdir -p /var/run/sshd
Run echo “root:123456” | chpasswd
Run apt-get install python-software-properties
RUN add=apt-repository ppa:webupd8teadm/java
run apt-agt update
RUN apt-get install -y vim wget curl oracle-java7-installer tomcat 7

容器上需要開放 SSH埠
EXPOSE 22

容器上需要開放 tomcat 8080埠
EXPOSE = 8080

ENTRYPOINT service tomcat7 start && /usr/bin/sbin/sshd -D
設定 tomcat7 啟動初始化 ssh放後臺執行

用 supervisor
可以吧多個系統服務啟動起來。
在這個配置檔案中 可以寫多個啟動命令

也可以將 這個supervisor啟動放到前臺 可以直接管理後面的指令,
也可以自動重啟 也相當於一個監管者。

docker 友好的程式架構:

docker image —》 配置隔離 zookeeper

docker container 從 zk 獲取資訊