Docker 使用筆記
- 2020-03-04
- Liu, An-Chi 劉安齊
Docker 是一個輕量的虛擬環境。
¶ 取得 Docker
¶ Windows
Windows 下裝可以直接裝 Docker,基本上就是去官網下載安裝檔安裝,可以參考官方教學。裝完後如果想要共享資料夾,要去 Docker 設定的地方「File Sharing」將之打算共享的硬碟勾選。
也可以用虛擬環境來操作,使用 VMware Workstation Player 安裝 Ubuntu 18.04。Ubuntu 下安裝 Docker 可以參考這篇教學。
進入虛擬機的 Ubuntu 之後,為了讓你的 Docker 可以不用用 sudo
,請執行以下指令:
sudo groupadd docker
sudo gpasswd -a $USER docker
sudo service docker restart
¶ Linux
Linux 用戶可以參考 Docker 文檔(左側選單可以選擇 Linux 發行版)。
為了讓你的 Docker 可以不用用 sudo
,請執行以下指令:
sudo groupadd docker
sudo gpasswd -a $USER docker
sudo service docker restart
¶ macOS
請參考 Docker 文件 下載安裝 Docker。
¶ 取得 Docker Image
Docker Image 是一個事先建立好的 Docker 開發環境。
用以下指令來取得 Ubuntu 官方 Docker Image 來做練習:
$ docker pull ubuntu:latest
¶ Docker 操作說明
接著我們要進入 Docker 的工作環境,此外我們將與 Docker 共享剛剛 pull 下來的工作目錄。
$ docker run -ti --rm --cap-add=SYS_PTRACE -v /shared_folder_local_full_path:/shared_folder_docker_full_path ubuntu
指令說明:
run
:啟動,後面可以接參數,最後要指令要哪個 Docker Image,此範例中是ubuntu
-ti
:在 Docker 中可以用互動模式--rm
:每次關閉 Docker 恢復原狀 (例如新 apt install 東西會消失,但共享資料夾不會)。-v
:共享資料夾,用法為<本地資料夾絕對路徑>:<共享在 Docker 裡面絕對路徑>
。注意:若是 Windows 下安裝 Docker,請直接分享整個 C 碟 (直接指定資料夾路徑會無效),Windows 會跳出訊息問你要不要分享,請點確認。
共享資料夾的幾個好處是,你可以在你本來的環境開發,最後做確認時再進 Docker 確認可以順利編譯執行就好;同時,你可以在你電腦中用你喜歡的 IDE 去撰寫程式,因為共享資料夾,你在 IDE 改動的檔案 Docker 可以直接看到,不然你在 Docker 中大概只剩 Vim 可以用了。
¶ 其他指令
docker ps
: 如果你docker run
沒有設定--rm
,每次執行的 docker 都會被保留,可以查看之前的工作狀態docker commit
: 可以將之前的工作狀態commit
起來,下次就可以直接進入這個工作階段
範例如下:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours desperate_dubinsky
197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours focused_hamilton
$ docker commit c3f279d17e0a myimage:version1
f5283438590d
$ docker run myimage:version1
有時候會想要同時有好幾個 Shell 操作同一個 Container,這時候可以執行:
$ docker exec -it <container> bash
更多指令可以參考 Docker 文件。