簡單的docker上手指南
釐清一些概念
什麼是docker
- container容器技術
- 可以隨時啟動、隨地部署、隨時被消滅
- 建立在Application同一層的虛擬化技術
- 為了保證環境是乾淨環境
幾個需要知道的元件
Docker Repository
- Docker的倉庫
- 相當於yum或是apt-get
- 可以建立私有的Repository
- Repository儲存的目標是image(相當於VM)
- 公用hub為docker hub
Docker Image
- Docker Container啟動的時候的來源
- 可以是Repository或是由Container包裝
Docker Container
- Docker底下最小的單位
- 在Application同一層
- 啟動的時候必須執行在前景的指令(因為在App同一層)
- 可以跟HOST OS溝通
如何安裝?
簡單一點
curl https://get.docker.com | bash
或是依照官方教學
網路層概念
docker的世界
分為 直連/區域網路(bridge)
直連(link)
- 單向連結
- 必須先存在欲連結的實體container
- 適用在較簡單的環境下
區域網路(net)
- 在同一個區網大家可以互相被看見
- 不需要先產生實體對應container
- 建構大型網路的時候非常適合
關於變數與環境變數
變數
- 僅能在docker建立過程中取得
- 通常在建立image的時候就必須帶入
環境變數
- 在實體container內的變數
- 可以隨時被取得
再來一些簡單的cheatsheet
# 將image從remote repo拉到local repo底下
docker pull [image]
# 執行image
docker run --rm [image]
# 列出所有的image
docker images
# 執行image並且在背景執行(pseudo-tty && stdin)
docker run -t -i -d [image]
# 執行container內指令(pseudo-tty && stdin)
docker exec -ti [container] [command]
# 如果要進去container會像是這樣(執行bash)
docker exec -ti [container] bash
# 檢查目前的container
docker ps -a
# 啟動/暫停/重新啟動
docker start [container]
docker stop [container]
docker restart [container]
# 刪除container(force)
docker rm -f [container]
# 刪除image(force)
docker rmi -f [image]
# 刪除所有的container(force)
docker rm -f $(docker ps -aq)
# 刪除所有的image
docker rmi -f $(docker images -aq)
# 進階用法
## 將container1與container2連接
docker run -idt --link [container1] --name [container2] [image]
## 建立虛擬VPC(net)並且將container1加入
docker network create -d bridge net
docker run -idt --name [container1] --net net [image]
## 啟動container1並且掛載/tmp到/tmp(volume)
docker run -idt --name [container1] -v /tmp:/tmp [image]
簡單的docker上手指南
By michael34435
簡單的docker上手指南
- 911