Install Docker (Ubuntu 14.04)
#加入第三方的apt來源 $ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates $ sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D $ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list #驗證docker已存在於apt-cache $ sudo apt-get update $ apt-cache policy docker-engine #為了使用aufs storage driver,14.04版應是先安裝linux-image-extra-* kernel packages $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual #安裝docker-engine $ sudo apt-get update $ sudo apt-get install docker-engine #啟動docker,作hello-world image測試 $ sudo service docker start
Docker 運作流程
- Docker Engine CLI client 連接到 Docker Engine daemon.
- Docker Engine daemon 從 Docker Hub pull image(例如:"hello-world" image)
- Docker Engine daemon 利用抓下來的image載入到一個新的container並執行其內容
- Docker Engine daemon 將運行結果回傳給 Docker Engine CLI client,並送回到原本執行command的terminal
Verify Installation
#hello-world image測試 $ sudo docker run hello-world #啟動一個ubuntu tty,-t 選項讓Docker分配一個虛擬終端(pseudo-tty)並綁定到容器的標準輸入上, -i 則讓容器的標準輸入保持打開。 $ sudo docker run -it ubuntu bash #啟動一個whalesay image, $ docker run docker/whalesay cowsay boo #docker版本查詢 $ sudo docker version #docker containers運行清單 $ sudo docker ps -a #docker image清單 $ sudo docker images
Build image
#寫一個Dockerfile $ mkdir mydockerbuild $ cd mydockerbuild $ touch Dockerfile $ nano Dockerfile FROM docker/whalesay:latest RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay #利用Dockerfile build一個image $ docker build -t docker-whale .
Push and pull image
#找出image id $ sudo docker images #標記image $ sudo docker tag [image-id] baddychiang/docker-whale:latest #登入docker hub $ sudo docker login #push image到repository $ sudo docker push baddychiang/docker-whale #移除本地端image $ sudo docker rmi docker-whale #重新pull image下來執行 $ sudo docker run baddychiang/docker-whale