Docker 從零到有 (Beginner to Docker)

Chris Lee
4 min readJul 19, 2019

--

Docker 是目前最流行的建立輕量環境工具之一,而且可以打包成 image 檔四處攜帶,效率高彈性大,尤其是在企業環境或是自架 server 開發環境,是很好的平台管理工具,以下就來介紹 docker 的零到有。

為了方便解說,我們拿 GCP 的環境來做教學,做一個下面規格的 ubuntu 環境來玩。

環境起來後,我們就 SSH 進去開始安裝我們的 docker。

# 官方建議的移除舊有套件語法 
sudo apt-get remove docker docker-engine
# 開始安裝
sudo apt-get update
sudo apt-get install docker.io

下面語法測試是否有正常啟動,如果出現綠色字就是有了。

service docker status

然後把你的 USER 加入 docker 的權限中,然後重登使用者,否則使用時會跳錯。

sudo usermod -aG docker $USER

接下來可以下以下語法看目前擁有的 image,因為剛安裝完應該是空的。

docker images

我們來裝一個 ubuntu 的 image,使用以下語法可以查有哪些 ubuntu image,我們挑最多人使用的第一個下載。

# 搜尋相關 image docker search ubuntu # 指定名稱並下載 docker pull ubuntu

好了以後再下一次 docker images 就可以看到有 ubuntu 的映像檔了。

接下來用以下語法來開啟建立 container 環境,語法可以分為以下幾個 :

  • -i :container 保持打開
  • -t:分配一個虛擬終端(pseudo-tty)並綁定到容器的標準輸入上
  • -d:背景執行
  • -e:設定環境變數(AAA=BBB)
  • -p:Port 對應(host port:container port),如 3000:8080 就是裡面8080外面3000
  • -v:資料對應(host folder:container folder)
  • -name:設定容器名稱
docker run -i -t -d -p 3000:8080 --name=test_docker ubuntu

有名稱後就可以用下面語法進去 docker 裡面了。

docker exec -it test_docker bash

進去後就可以照自己喜歡安裝 python 或 jupyter notebook,因為在起 docker 時有指定底層 port 接口,就可以在外面用 3000 連到裡面的 8080 port 了。

若要終止則可以使用 docker stop 停止或是 docker rm 刪除,也可以將 container 打包成 image 帶出。

docker export test_docker > test_docker.tar

當拿到新的 docker 環境要匯入時,則使用以下語法:

docker load < test_docker.tar

如此一來就可以輕鬆地使用 docker 環境囉!

--

--

Chris Lee

隱身在金融業的資料科學家,部分文章會在個人部落格唷 https://chrisnote.com/