安裝 Docker 環境

開始學 Docker 前,需要先把環境建好。以下提供多種安裝方法,讀者可以依自己喜好自由選擇。

原生系統上安裝

若沒有特殊需求或限制,會建議使用這個方法。以下針對三個主流作業系統做簡單的說明:

Linux

注意:必須要是 64-bit 版本才能運行 Docker。

參考官方文件,或使用懶人包安裝:

sudo curl -fsSL https://get.docker.com/ | sh
sudo usermod -aG docker your-user

已使用 Vagrant 測試過 ubuntu/trusty64debian/jessie64 兩個作業系統可行;centos/7 需手動啟動 docker daemon sudo systemctl start docker

Mac

參考官方文件,下載並安裝 Docker Desktop for Mac(需要權限)。

或是使用 HomebrewCask 安裝(需要權限):

brew cask install docker

Windows 10

注意:需啟用 Hyper-V。

參考官方文件,下載並安裝 Docker Desktop for Windows

使用虛擬機安裝

有時候因為某些理由,可能會不想或無法(如 Windows 7)在原生系統上安裝 Docker,這時可以考慮使用虛擬機安裝。

Docker Machine

Docker Machine 是官方提供 Docker 機器的建置工具。如果打算建置虛擬機的話,這應該是最適當的方案。

預設的 provider 包括以下選擇:

使用雲端服務請注意防火牆要開通 local 機器的連線,Docker 使用 tcp 2376 port 連線,同時不要讓其他人能連到這個 port。

以 VirtualBox 為例,執行以下指令即可建立一個 Docker 虛擬機器:

# 建立 Docker 虛擬機
docker-machine create -d virtualbox my-docker
# 查看機器對應的環境參數
docker-machine env my-docker
# export 環境參數,執行 docker 指令將會連線到此虛擬機上
eval $(docker-machine env my-docker)

Vagrant

Vagrant 使用指令管理虛擬機,並使用程式碼來表達環境(Infrastructure-as-code,IaC)。

實際的做法,建立 Vagrantfile 檔案,並將下面的程式放入檔案裡:

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"

# config.vm.network "forwarded_port", guest: 80, host: 8080
# config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end

config.vm.provision "shell", inline: <<-SHELL
curl -fsSL https://get.docker.com/ | sh
usermod -aG docker vagrant
SHELL
end

再來使用 vagrant up 指令即可得到 Ubuntu trusty 64-bit + Docker CE 的乾淨環境:

vagrant up
vagrant ssh

AWS Cloud9

使用 AWS Cloud9 服務:

  1. 啟用 Cloud9 服務,設定直接用預設值即可
  2. 在 Cloud9 服務,下 curl ifconfig.co 指令取得公開 IP
  3. 如果想要從 local 連上並測試服務的話,必須到 EC2 服務裡,找到對應的 instance,再設定 security group

Play with Docker

上述方法全部都不行的話,這就是最後一招了:申請好 DockerHub 的帳號後,即可使用 Play with Docker 服務。

它是使用 DinD 做成的線上服務,所以會有兩個很明顯的問題:

  • 不保證系統一直都可以用,所以有時會壞掉。
  • 因為使用 DinD,所以從本機是無法連上該服務建置出來的服務,不過可以在服務上使用 curl 或其他跟連線有關的指令測試

驗證

安裝完成後,打開終端機輸入下面指令,即可驗證是否安裝成功:

docker run hello-world

若沒出現錯誤訊息,且有出現 Hello from Docker! 文字的話,代表 Docker 有正常啟動,可以開始使用 Docker 了!

今日自我回顧

  • 描述自己選擇的安裝方法,以及為何選擇這個方法。
  • 建立 Docker 環境,並可正常執行指令 docker run hello-world

參考資料