1. 程式人生 > >docker 簡單使用以及利用Dockerfile構建屬於自己的映象

docker 簡單使用以及利用Dockerfile構建屬於自己的映象

安裝docker

 vim /etc/apt/sources.list  加入以下程式碼:

deb http://http.debian.net/debian wheezy-backports main

然後重新整理源: apt-get update 
如果有安裝過docker,則先刪除舊版本docker

apt-get purge lxc-docker*

apt-get purge docker.io*

apt-get update

確認apt添加了https方法和CA cerificates

apt-get install apt-transport-https ca-certificates

新增一個新的GPG key

apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76

編輯檔案:

vim /etc/apt/sources.list.d/docker.list, 因為基於Debian Wheezy版本

deb https://apt.dockerproject.org/repo debian-wheezy main

 apt-get update

確認正確安裝repository

apt-cache policy docker-engine

正式安裝:

apt-get update

apt-get install docker-engine

systemctl start docker

docker run hello-world

 

docker 的一些命令

docker search ubuntu查詢映象

docker pull 拉取映象

 

docker run -it imageID i 互動式 t terminal 退出ctrl p+ctrl +q

後臺執行 加上個-d daemon重新進入後臺的docker docker attach containID

但有時attach進不去,可以使用 docker exec -it containID /bin/bash 

更新:attach退出後會導致容器死掉,所以採用docker exec -it xxx /bin/bash

docker stop containID 每次run 一次就是一個新的容器,docker ps -a檢視還可執行時指定container 的名稱 --name

 

利用Dockerfile構建docker映象 Dockerfile檔案

利用docker build -t  映象名稱:標籤名稱  .    -t指tag 後面有個 點表示要將Dockerfile放在當前目錄下且Dockerfile名稱就為Dockerfile

docker images檢視本地映象 ,執行已構建好的映象

docker run -d -p 8888:8888 -v local:docker --name xxx image:tag

-d 後臺 -p本地埠-vdocker和本地互通的位置 :前面為本機 後面為docker的

進入docker docker exec -it containerId /bin/bash 

 

Dockerfile 檔案內容:每個docker命令需大寫:具體含義

FROM ubuntu:lastest #從哪個映象
MAINTAINER xxx 作者
RUN 構建docker映象執行的命令
ADD 本地 docker 新增本地的東西到docker內
ENV JAVA_HOME /usr/jdk1.8 設定環境變數
EXPOSE 8443 對外暴露哪個埠
WORKDIR xxx 切換到docker內的指定目錄
ADD start.sh start.sh
RUN chmod +x start.sh
CMD "./start.sh" 每次run docker時執行的命令 這裡有一個大坑!!!

執行docker容器後如果docker命令執行完之後,就會自動exit,它自己就會覺得沒什麼事做,就exit了,儘管加了 -d 後臺

所以,須在CMD start.sh 中執行指定命令後加入一個死迴圈,以保持容器一直執行,比如說

while true:

do

sleep 10s

done