Skip to content

Instantly share code, notes, and snippets.

@maxmilian
Last active July 3, 2020 16:27
Show Gist options
  • Save maxmilian/2ffe84054f9b892e50e13426990178e0 to your computer and use it in GitHub Desktop.
Save maxmilian/2ffe84054f9b892e50e13426990178e0 to your computer and use it in GitHub Desktop.

Docker

安裝 Docker Community Edition (CE) 在本機上(MAC),當 Docker 執行時,皆可以使用以下指令。另外也可以安裝GUI介面 kitematic

觀念

參考 《Docker —— 從入門到實踐》 前幾章節。 Docker 是一個虛擬化環境服務,可以建置正式環境、測試環境等,讓程式的開發、部署、測試等變得簡單。

虛擬化技術

因為虛擬化技術的不同,使 docker 可以較輕量化,啟動較為迅速。

傳統虛擬化

Docker虛擬化

Docker 指令

Docker指令關係

建立 docker image

根目錄下有 Dockerfile,可用此檔案建立一 docker image,此 dockerfile 會進行安裝以下清單

  • Vim
  • Git
  • Nginx 1.14
  • PHP 7.2
  • MySQL 5.7
  • Composer
  • Node 8.9
  • Python 3.6
docker build .

NOTE: 可使用 --no-cache 來取消 cache

列出 docker image,找出image name 和 image id

docker images

執行 docker image

執行並進入tty

docker run -v ~/laravel_web:/laravel -t -i IMAGE_ID /bin/bash

-v 選項為掛載本機 ~/laravel_web 至 container 中的 /laravel

-t 選項是開啟一個虛擬終端(psudo tty)至container中的標準輸入stdin

-i 選項為互動模式,此stdin持續打開

-p 選項為port對應,例如 -p 80:8080

背景執行(daemon) docker image

docker run -d -v ~/laravel_web:/laravel IMAGE_ID /bin/bash

查詢container資訊

docker inspect CONTAINER_ID

Docker Attach/Detach

Detach 跳出container

鍵盤上按 Ctrl + P + Q 可離開 container

Attach 進入container

docker attach CONTAINER_ID

其他Docker指令

列出 container

docker ps -a

-a 選項為全部,若不加a,則顯示執行中的container

container 狀態操作

docker [start|stop|restart] CONTAINER_ID

刪除 container

docker rm CONTAINER_ID

刪除 image

docker rmi IMAGE_ID

Docker Hub

登入

docker login

新增 tag

docker tag IMAGE_ID username/repo:TAG_NAME

push

docker push username/repo:TAG_NAME

pull

docker pull username/repo:TAG_NAME
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment