[Docker] Command Line, CLI
keywords: tutorial
, cli
docker version # 確認 docker client 可以和 server engine 溝通
docker info # 檢視和 docker engine 有關的設定檔
TL;SC
$ docker ps [--all]
$ docker run -it [image-id] # 根據 image 建立並執行 container
$ docker run -p 8080:8080 <image-id> # port mapping localhost port:container port
$ docker run -d redis # 讓該 container 在背景執行
# 希望能夠對某個執行中的 container 輸入一些指令
$ docker exec -it <container-id> sh
$ docker start [container-id] # 執行已經建立過的某個 container
$ docker stop [container-id] # 停止某個執行中的 container
$ docker system prune # 把所有 docker 中當前沒用到的 container 清空
# 將 container 包成 image
$ docker build -t pjchender/project_name .
##
# docker compose
##
$ docker-compose up --build # 對應到 docker build . 和 docker run <image-id>
$ docker-compose up -d # 對應到類似 docker run <image-id>,-d 是在背景執行
$ docker-compose down
$ docker-compose ps # 列出該 docker-compose 中有哪些 services 在執行
Docker CLI
# 根據 image 來建立並執行一個 container
# docker run <image-name>
$ docker run hello-world
# docker run <image-name> [override command] 會覆蓋掉原本在 image 內的 startup command
$ docker run -it busybox sh
# 根據 image 建立 container
$ docker create <image-name> # 會取得 container id
# 執行某個 container
# -a:監聽 container 中的 output,並顯示在 Terminal 上
$ docker start -a <container-id>
# 取得某一 Container 的 logs
$ docker logs <container-id>
# 停止某個 container
$ docker stop <container-id>
# 刪除某個 container
$ docker kill <container-id>
# 列出 containers
$ docker ps # 列出所有「正在執行」的 container
$ docker ps --all # 列出所有「被建立過」的 container
# 清除 container
$ docker system prune # 把所有 docker 中當前沒用到的 container 清空
# 對 container 執行某一指令
$ docker exec <container-id> <command>
$ docker exec -it <container-id> bash # 執行 container 的 bash shell