Docker筆記(三)_Win10上docker的指令操作part1.查看系統訊息、版本、容器跟映像檔基礎指令

 
查看docker 版號
docker -v
C:\Users\535860>docker -v
Docker version 19.03.13, build 4484c46d9d
查看docker 詳細版本資訊
docker version

C:\Users\535860>docker version
Client: Docker Engine - Community
 Cloud integration: 1.0.2
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:00:27 2020
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:07:04 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683


查看docker 的系統資訊
(image數、container數、CPU、memory)
docker info

C:\Users\535860>docker info
Client:
 Debug Mode: false
 Plugins:
  scan: Docker Scan (Docker Inc., v0.3.4)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.128-microsoft-standard
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 25.01GiB
 Name: docker-desktop
 ID: 5CV4:SRM6:GB3O:7VQZ:S4IO:BHHK:NBZS:WZTR:V6A4:DKZ5:46WC:JAGK
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled


若要學習用陌生的docker command怎麼查看幫助文檔
docker某句命令 --help
{docker certain command} --help

例如



映像檔相關操作

從 docker hub上去搜尋一些現成的映(鏡)像檔/images
By特定image關鍵字查找映像檔
docker search {image-keyword}

NAME: 鏡像倉庫源的名稱
DESCRIPTION: 鏡像的描述
OFFICIAL: 是否為 docker 官方發布
STARS: 類似 Github 裡面的 star,表示點讚、收藏的意思。
AUTOMATED: 自動構建。

預設會有星星顆數(被收藏的次數)排名由高到低排出來

如果要去篩選掉一些沒有這麼熱門的image可以改一下命令
比方收藏數要100以上的才顯示
docker search -s {collect-count} {image-keyword}



 official only的image查找方式
docker search {image-keyword} --filter is-official=true




找到喜歡的image要抓下來
docker pull {image-keyword}
例如docker pull ubuntu
或docker pull ubuntu:latest
默認會抓最新版下來



如果有使用任何映像檔建立過Container,或是手動下載過映像檔,就會存放在本機中。
列出本機映像檔docker images
docker images

當images被執行起來時就會變成是容器(執行中的image)
列出執行中的容器
docker ps




由於目前沒有任何執行中的容器
所以為空


運行image(創建出一個新的容器並執行命令)
docker run -i -t {image-repository-name}


此時在下一次docker ps就會看到有正在運行的一筆容器紀錄
按CTRL+Z可以在跳出容器

(PS:docker run 若你輸入執行指令指定到錯的映像檔名稱,如果那個輸入錯誤的映像檔剛好也存在於Docker Hub,docker會很雞婆也直接幫你pull下來。)

比如我不小心執行到
docker run -it hello-world

其實是想在某個容器內print hello world但在外部執行到了
這時就會發現docker在本機判斷不到這麼名字的映像
直接去 docker hub 找到image幫我們抓下來 



刪除image
docker rmi [Image ID]
(PS:在刪除映像檔之前要先用 docker rm 刪掉依賴於這個映像檔的所有容器。 )


我們想把誤抓下來的image刪掉的話則可以透過
docker rmi 去刪除該image

但當我們要去刪除image的時候會發現怎麼刪不掉


原因在於這個別人建立的image會於運行時也產生一個沒有在跑的container
所以你下docker ps (或者 docker container ls)都會看不到這隱藏的容器
這時我們下docker container ls -a顯示所有(包含沒在運行的)容器
檢查一下

這時要先將此容器先刪除在刪image


容器相關操作
(參數請傳container-id)

如何再次進到容器?
再次執行(進到)既有執行中的容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

例如這裡是要進到
ubuntu的這個運行中的container則指定其container id
然後還要加上預設要運行的命令
在linux 預設多用bash終端所以也指定給它



docker exec -it b5387a09cff5 /bin/bash



這裡要注意 docker run 是針對還沒運行的image用
而docker exec 則是針對已經在運行的container

container運行起來後怎麼關掉呢?
停(關)掉容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]


若要在執行起來?
再次執行已被關閉的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]



重啟容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]



刪除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
(PS:必須先停掉容器才能刪除)




陳列出所有容器
docker container ls
預設只打docker container ls 會只秀running中的

如要連沒在運行的容器也列出
docker container ls -a


容器相關指令還有如下滿多種的

C:\Users\535860>docker container -help
unknown shorthand flag: 'e' in -elp
See 'docker container --help'.

Usage:  docker container COMMAND

Manage containers

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

Run 'docker container COMMAND --help' for more information on a command.








Ref:
How To List / Start / Stop Docker Containers

How to list containers in Docker

docker container ls

docker images 指令筆記

基礎指令

Docker 基本教學

docker search` filter official images #18980

Docker - 解決刪除 image 時出現的錯誤訊息

Docker 中刪除 Images 鏡像 及 Containers

《Docker —— 從入門到實踐­》正體中文版

Docker start/stop/restart 命令


「docker run」VS「docker exec」,這兩個命令有區別嗎?

與Running Instance互動


留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header