##【 Docker 】
關閉 Docker
docker-compose down
【 Container 】
建立container
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
OPTION:
-d 表示在背景( Detached )執行,Docker 預設前景( foreground )執行
-p 表示將本機 8080 port 的來源轉發到 container 的 80 port
–name 表示為 container 的名稱
–rm 表示當 exit container 時,會移除 container( incompatible with -d )
ex.
docker run -d -p 80:80 --name my_image nginx
//exit container 時,會自動移除 containe
docker run -it --rm busybox
檢查 container 運行狀況
目前運行的 container
docker ps
檢查目前所有container (包括未運行的)
docker ps -a
停止 container
docker stop [OPTIONS] CONTAINER [CONTAINER...]
重新啟動 container
docker restart [OPTIONS] CONTAINER [CONTAINER...]
刪除container
–volumes , -v 參數,可以於刪除 container 同時移除掉連接到 container 的 volume。
docker rm [OPTIONS] CONTAINER [CONTAINER...]
刪除所有正在運行的 container
docker stop $(docker ps -q)
##【 管理container 】
進入 container
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it <Container ID> bash
查看container 中的linux版本
cat /etc/os-release
查看 log
–follow , -f , Follow log output
docker logs [OPTIONS] CONTAINER
查看container process CPU/IO..
docker stats [OPTIONS] [CONTAINER...]
停用 container 中的 process
docker pause CONTAINER [CONTAINER...]
檢查 container 列表
docker container ls
##【 鏡像 Images 】
安裝鏡像
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
檢查已安裝的鏡像
Check installed Images
docker images
刪除鏡像
docker rmi [OPTIONS] IMAGE [IMAGE...]
打包鏡像檔
docker save [OPTIONS] IMAGE [IMAGE...]
//ex
docker save nginx > mynginximages.tar
載入鏡像檔
docker load [OPTIONS]
//ex
docker load < mynginximages.tar
檢查鏡像檔歷史紀錄
docker history [OPTIONS] IMAGE
刪除 deling Images
docker rmi $(docker images -q -f dangling=true)
docker rmi $(docker images --quiet --filter dangling=true)
【 Volume 】
Volume 是 Docker 推薦存放數據的方式
查看 volume
docker volume ls [OPTIONS]
建立 volume
docker volume create [OPTIONS] [VOLUME]
刪除 volume
docker volume rm [OPTIONS] VOLUME [VOLUME...]
查看 volume 說明
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
移除未使用的 volume
docker volume prune [OPTIONS]
##【 network 】
查看當下網路狀況
Docker 網路模式有: Bridge(預設)、Host、None
docker network ls [OPTIONS]
//ex.
docker run -it --name mydocbox --rm --network=host mydocbox
建立 network
docker network create [OPTIONS] NETWORK
移除 network
docker network rm NETWORK [NETWORK...]
移除未使用的network
docker network prune [OPTIONS]
查看 network
docker network inspect [OPTIONS] NETWORK [NETWORK...]
container 連結 network
docker network connect [OPTIONS] NETWORK CONTAINER
container 中斷network連線
docker network disconnect [OPTIONS] NETWORK CONTAINER
User Bridge Network
User bridge network 可以經由內建的 DNS 伺服器,讓容器跟容器之間可以直接用名稱溝通 只要透過名稱,就可以直接解析出IP
這部分推薦仔細研究
https://docs.docker.com/network/bridge/#connect-a-container-to-a-user-defined-bridge
##【 Compose 】
Conpose 主要透過 docker-compose.yml 來管理多個 container
並且多數指令與 Docker 一致
查看目前 container
docker-compose ps
//只顯示ID
docker-compose ps -q
啟動
https://docs.docker.com/compose/reference/up/
//背景啟動(正式環境使用)
docker-compose up -d
關閉
https://docs.docker.com/compose/reference/down/
docker-compose down [options]
ex. 關閉且同時移除 docker-compose.yml 設定的 volume )
docker-compose down -v
啟動 service
docker-compose start [SERVICE...]
//Builds, (re)creates, starts, and attaches to containers for a service
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]
停止 service
docker-compose stop [options] [SERVICE...]
重啟 service
docker-compose restart [options] [SERVICE...]
於 service 執行指令
在指定的service執行指令
docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
[ARGS...]
ex.
docker-compose run web bash
查看service log
docker-compose logs [options] [SERVICE...]
檢查docker-compose.yml
docker-compose config
等同於
docker-compose exec
查看 Images
docker-compose images
移除 service
docker-compose rm
Publish Images to docker hub
docker-compose push