iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
4
DevOps

30 天與鯨魚先生做好朋友系列 第 2

安裝 Docker 環境

  • 分享至 

  • xImage
  •  

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

原生系統上安裝

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

Linux

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

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

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

筆者已使用 Vagrant 測試過 ubuntu/xenial64debian/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

參考資料


上一篇
簡介
下一篇
Hello Docker World
系列文
30 天與鯨魚先生做好朋友30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
Wen Chien
iT邦新手 4 級 ‧ 2020-09-17 00:55:05

唉唷~還是偷偷參加了嘛~~

Miles iT邦新手 2 級 ‧ 2020-09-17 01:07:34 檢舉

這次只有七成把握

Wen Chien iT邦新手 4 級 ‧ 2020-09-17 13:47:41 檢舉

(不相信的臉)

0
arguskao
iT邦新手 4 級 ‧ 2022-05-07 09:57:03

請問一下Docker desktop是不是對於電腦規格要求比較高

我用2014年的mac mini 4GB不能啟動(安裝Mojave)

0
tytom2005
iT邦新手 5 級 ‧ 2022-09-29 10:57:40

我現時在我的windows 電腦裏安裝了virtualbox,然後在virtualbox 裏安裝Ubuntu linux,重新去看你文章去學docker。請問Vagrant部份是怎樣做的? 我建立 Vagrantfile 檔案,要將檔案放在那裏? (可不可以詳細說明, 我對linux 是零概念/images/emoticon/emoticon06.gif)

我現時是能夠運行docker.
執行了"docker run hello-world"
顯示
"Hello from Docker!
This message show that your installation appears to be working correctly."

Thank you very much.

看更多先前的回應...收起先前的回應...
Miles iT邦新手 2 級 ‧ 2022-09-29 11:33:44 檢舉

Vagrant 要參考他們官方網站,但因為我不是用 Windows,所以可能沒辦法幫上忙

https://www.vagrantup.com/

tytom2005 iT邦新手 5 級 ‧ 2022-09-29 12:22:24 檢舉

在Ubuntu怎樣安裝? thank you

Miles iT邦新手 2 級 ‧ 2022-09-29 15:13:11 檢舉

如果你已經有 Ubuntu 環境的話,應該就不需要 Vagrant 了XD

可以直接參考 Linux 的懶人包安裝方法,但現在不確定還能不能用…

tytom2005 iT邦新手 5 級 ‧ 2022-10-06 09:49:39 檢舉

請問如果買"30天與Docker做好朋友:跟鯨魚先生一同探索開發者的大平台"書來看,會不會詳細有教怎樣做"以 Laravel 為例,來 build image 吧!"? Thank you.

Miles iT邦新手 2 級 ‧ 2022-10-06 10:18:20 檢舉

Build Laravel image 的部分完整度差異不大,在書裡是鐵人賽重新排版過,順序會比較理想一點。

不過書裡有建置過程的 GIF 檔可以參考執行的過程,但因為環境還是以 Mac 為主,這點對 Windows 使用者可能會比較吃力。

tytom2005 iT邦新手 5 級 ‧ 2022-10-06 14:19:29 檢舉

我是用ubuntu系統來學docker. 因為我"以 Laravel 為例,來 build image 吧!"在網頁上不夠詳細,很難去明白,而且沒有圖去說明,這樣就想買書來看去學習。

Miles iT邦新手 2 級 ‧ 2022-10-07 09:07:38 檢舉

書上也是沒有圖的,只是有每次指令建置過程的 GIF 可以參考,我個人是覺得幫助應該有限,你可以再想想,或是去天瓏書局先看看。

我要留言

立即登入留言