Ubuntu
添加ubuntu-docker源
首先添加你的ubuntu-docker源: 打開(kāi)你的/etc/apt/sources.list加入下面的源
ubuntu12.04
deb http://rnd-mirrors-langfang.huawei.com/docker/apt/repo ubuntu-precise main
ubuntu14.04
deb http://rnd-mirrors-langfang.huawei.com/docker/apt/repo ubuntu-trusty main
ubuntu15.04
deb http://rnd-mirrors-langfang.huawei.com/docker/apt/repo ubuntu-vivid main
然后執(zhí)行下面的命令就能安裝最新的docker
shell apt-get update apt-get install docker-engine
如果需要安裝某個(gè)版本的docker,運(yùn)行下面這個(gè)命令即可
shell apt-get install docker-engine=1.11(1.11為示例)
docker常用操作 配置docker代理 # vim /etc/default/docker export http_proxy=“******” export https_proxy=“******” # service docker restart
導(dǎo)入環(huán)境變量:http_proxy,https_proxy
配置docker倉(cāng)庫(kù)地址(默認(rèn)為官方鏡像倉(cāng)庫(kù))
注意:從第三方鏡像倉(cāng)庫(kù)獲取鏡像可能出現(xiàn)https證書(shū)問(wèn)題
解決方案:
進(jìn)入/etc/default目錄,找到docker文件,在其中添加如下代碼: DOCKER_OPTS="–insecure-registry dl.dockerpool.com:5000(實(shí)際第三方鏡像庫(kù)的地址)" 之后重啟docker服務(wù):sudo service docker restart 下載docker鏡像并安裝服務(wù)
此處以u(píng)buntu為例,也可直接下載公司內(nèi)部提供的歐拉docker鏡像。
# sudo docker pull ubuntu
查看容器中鏡像:
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 104bec311bcd 4 days ago 129 MB
直接啟動(dòng)鏡像:
# docker run -it -d ubuntu:latest
使用22映射端口號(hào)run鏡像啟動(dòng)容器:
# docker run -d -p :22 ubuntu:latest
掛卷啟動(dòng):
# dockerrun-it-v/home/xul:/mntubuntu:latest
冒號(hào)前為宿主機(jī)目錄,必須為絕對(duì)路徑,冒號(hào)后為鏡像內(nèi)掛載的路徑。
查看運(yùn)行的容器:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
c3b1a9a03326 ubuntu:latest "/bin/bash" 9 minutes ago Up 9 minutes 進(jìn)入容器:
# sudo docker exec -it c3b1a9a03326 /bin/bash
進(jìn)入容器后,可以在容器中安裝服務(wù)。
在宿主機(jī)執(zhí)行docker commit,合并生成新的鏡像。
#docker commit -m "ccs"(注釋說(shuō)明) -a "huawei"(修改者) c3b1a9a03326 css:v1.0(新鏡像名稱(chēng))
編寫(xiě)dockerfile,集成服務(wù)所需要的配置和啟動(dòng)腳本,合并到新的鏡像。(備注:也可以將安裝等步驟都合并在dockerfile中一次完成,只是dockerfile文件的編寫(xiě)復(fù)雜一些)
保存鏡像:
#docker save -o
加載本地鏡像:
#docker load < /***/***/
設(shè)置鏡像名稱(chēng)及tag
#docker tag
Dockerfile
Dockfile是一種被Docker程序解釋的腳本,Dockerfile由一條一條的指令組成,每條指令對(duì)應(yīng)Linux下面的一條命令。Docker程序?qū)⑦@些Dockerfile指令翻譯真正的Linux命令。Dockerfile有自己書(shū)寫(xiě)格式和支持的命令,Docker程序解決這些命令間的依賴(lài)關(guān)系,類(lèi)似于Makefile。Docker程序?qū)⒆x取Dockerfile,根據(jù)指令生成定制的image。
FROM
dockerfile里的第一條指令,后面跟有效的鏡像名。
ADD:掛載文件
格式為ADD path1 path2
該命令將復(fù)制path1指定的到容器中的path2。 其中path1可以是Dockerfile所在目錄的一個(gè)相對(duì)路徑;也可以是一個(gè)URL;還可以是一個(gè)tar文件(自動(dòng)解壓為目錄),eg:
ADD /home/redhat/test /home/test
ARG
定義變量,只在build時(shí)有效,不會(huì)被保存在鏡像中
RUN
后跟要執(zhí)行的linux命令,每一條RUN指令(可能會(huì)有多條linux命令)會(huì)在當(dāng)前容器最上面的可讀寫(xiě)層執(zhí)行并且提交成一個(gè)新的鏡像層,接下來(lái)的指令會(huì)在這個(gè)新的鏡像層里執(zhí)行。
CMD
CMD指令指定你制作出來(lái)的鏡像在啟動(dòng)成容器時(shí)運(yùn)行命令的默認(rèn)的參數(shù)。
ENTRYPOINT
容器的進(jìn)入點(diǎn)。這個(gè)指令會(huì)覆蓋它前面的CMD指令,而多個(gè) ENTRYPOINT指令只有最后一個(gè)生效。同時(shí)也可以在在啟動(dòng)container 的時(shí)候指定–entrypoint參數(shù)來(lái)覆蓋dockerfile里的ENTRYPOINT。
EXPOSE
EXPOSE指定容器對(duì)外暴露的端口號(hào)。
ENV
指定環(huán)境變量的值,保存在鏡像中。