about 4 years ago

故事的開始,是在 2/25 參加了 Docker Taipei #1 Meetup後,對 Docker 有了一些基本的認識。在使用過後,就愛不釋手。

特色

  1. 佈署快 - 少了建立 Guest OS。
  2. 版本控制 - 利用 Btrfs 做出檔案系統的差異,可以隨時回溯至特定版本。
  3. Isolation - 每個 container 都是獨立、乾淨的檔案系統。

指令

一般來說,開始使用的第一件事是下載 base image.

$ docker pull ubuntu

Usage: docker pull [image_name]

Python 有個 PyPi Server,Docker 也有一個 Docker Indexdocker pull 預設的下載來源就是 Docker Index。

執行剛剛下載的 ubuntu base image

$ docker run -i -t ubuntu bash 

Usage: docker run -i -t [image_name] [command]
-i: interactive mode
-t: pseudo tty

Shortcuts

  • 清除所有未執行的 container

    docker rm `docker ps -a -q`
    
  • 清除所有未被標記的 image

    docker rmi `docker images | grep "^<none>" | awk '{print $3}'`
    

Gotcha

  1. 僅能運行於 Linux Kernel 的作業系統。因為它使用 Linux Kernel 的 cgroups 來實作 container 的隔離環境。
  2. 不能使用 upstart
  3. 無法在 container 中,修改 kernel module,因為 kernel 是共用的。

參考資料

  1. Docker Reference: Run
  2. Automated deployment with Docker – lessons learnt
  3. How to auto restart a docker container after a reboot
  4. How to remove old docker.io containers
  5. Remove all untagged images
  6. Dockerが利用しているAUFSとLXC
← RequireJS 使用筆記 Python 利用 Selenium 做無頭 (headless) 自動化測試 →
 
comments powered by Disqus