magnum

Docker get start

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 運作流程

  1. Docker Engine CLI client 連接到 Docker Engine daemon.
  2. Docker Engine daemon 從 Docker Hub pull image(例如:"hello-world" image)
  3. Docker Engine daemon 利用抓下來的image載入到一個新的container並執行其內容
  4. 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

發表留言