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