:::warning 本文件包含演練前所需預備之相關資訊,請參閱。 ::: ## 🎯登入或註冊 [Docker Hub](https://hub.docker.com/) https://hub.docker.com/ ![image](https://hackmd.io/_uploads/BkRBxOs_p.png) ### 前往 [Play with Docker](https://labs.play-with-docker.com/) ![image](https://hackmd.io/_uploads/rkooe_odT.png) ### 新增實例 Sessions and all their instances are deleted after 04:00:00 hours 會話與所有實例會在4小時後刪除 ![image](https://hackmd.io/_uploads/HJ6Vb_oda.png) 點選 ADD NEW INSTANCE 後,如下圖 ![image](https://hackmd.io/_uploads/BJ3_-_jOa.png) ### Lab 1 列出 docker 可用指令 [docker cli](https://docs.docker.com/engine/reference/commandline/cli/) ```bash= docker ``` [![image](https://hackmd.io/_uploads/Hy04M_idp.png)](https://hackmd.io/_uploads/Hy04M_idp.png) ```bash= docker help ``` [![image](https://hackmd.io/_uploads/SkAFzuo_a.png)](https://hackmd.io/_uploads/SkAFzuo_a.png) ### Lab 2 下載鏡像 [pull](https://docs.docker.com/engine/reference/commandline/pull/) ```bash= docker pull nginx ``` [![image](https://hackmd.io/_uploads/r1LDr_jda.png)](https://hackmd.io/_uploads/r1LDr_jda.png) ### Lab 3 從映像建立並運行新容器 [run](https://docs.docker.com/engine/reference/commandline/run/) ```bash= docker run -d nginx ``` #### Options | Name|shorthand | Default | Description | |------|-----------|---------|-------------| | `--detach` | `-d` | | Run container in background and print container ID 在背景運行容器並列印容器 ID| [![image](https://hackmd.io/_uploads/Bk9zvdiOa.png)](https://hackmd.io/_uploads/Bk9zvdiOa.png) ### Lab 4 列出容器 [ps](https://docs.docker.com/engine/reference/commandline/ps/) ```bash= docker ps -a ``` #### Options | Name|shorthand | Default | Description | |------|-----------|---------|-------------| | `--all` | `-a` | | Show all containers (default shows just running) 預設顯示剛剛運行的| [![image](https://hackmd.io/_uploads/r1vu__od6.png)](https://hackmd.io/_uploads/Bk9zvdiOa.png) ### Lab 5 移除一個或多個容器 [rm](https://docs.docker.com/engine/reference/commandline/rm/) ```bash= docker rm [OPTIONS] CONTAINER [CONTAINER...] ``` #### 例 ```bash= docker rm 9d981b432e79 ``` #### 強制刪除 ```bash= docker rm --force 9d981b432e79 ``` #### Options | Name|shorthand | Default | Description | |------|-----------|---------|-------------| | `--force` | `-f` | | | [![image](https://hackmd.io/_uploads/SJBI5Ooda.png)](https://hackmd.io/_uploads/SJBI5Ooda.png) ### Lab 6 列出鏡像 [images](https://docs.docker.com/engine/reference/commandline/images/) ```bash= docker images [OPTIONS] [REPOSITORY[:TAG]] ``` #### 例 ```bash= docker images -a ``` #### Options | Name|shorthand | Default | Description | |------|-----------|---------|-------------| | `--all` | `-a` | | Show all images (default hides intermediate images)顯示所有影像(預設隱藏中間影像)| [![image](https://hackmd.io/_uploads/Hk7radiOa.png)](https://hackmd.io/_uploads/Hk7radiOa.png) ### Lab 7 移除一個或多個鏡像 [rm](https://docs.docker.com/engine/reference/commandline/image_rm/) ```bash= docker image rm [OPTIONS] IMAGE [IMAGE...] ``` #### 例 ```bash= docker image rm d453dd892d93 ``` #### Options | Name|shorthand | Default | Description | |------|-----------|---------|-------------| | `--force` | `-f` | | Force removal of the image 強制刪除鏡像| | `--no-prune` | | | Do not delete untagged parents 不要刪除未標記的父項| [![image](https://hackmd.io/_uploads/S1AhRusOT.png)](https://hackmd.io/_uploads/S1AhRusOT.png) ### Lab 8 運行容器 nginx 並開啟瀏覽器 設定 80 port 用於運行 nginx 後,開啟瀏覽器 [![image](https://hackmd.io/_uploads/H1MIxqi_T.png)](https://hackmd.io/_uploads/H1MIxqi_T.png) ```bash= docker run --name nginx-test -p 80:80 -d nginx ``` 開啟瀏覽器 [![image](https://hackmd.io/_uploads/H1sCxqsd6.png)](https://hackmd.io/_uploads/H1sCxqsd6.png) ### Lab 9 顯示即時的容器資源使用統計 設定 80 port 用於運行 nginx 執行指令 ```bash= docker stats -a ``` [![image](https://hackmd.io/_uploads/ryTZSh3d6.png)](https://hackmd.io/_uploads/ryTZSh3d6.png)