iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 12
2
DevOps

用30天來介紹和使用 Docker系列 第 12

Day12:介紹執行 Docker Container 常用到的指令(二)

  • 分享至 

  • xImage
  •  

昨天已經有介紹執行 Docker Container 所常用到的指令,還有一些指令還沒有介紹到,今天就來繼續來使用到還沒有被介紹到的指令。

在開始之前先來回顧一下,昨天有使用到的指令:
docker run:用來執行 container
docker logs:用來查看 container 的 log 訊息
docker ps:用來顯示有哪些container 在執行,如果下-a參數把沒有執行的列出來
docker rm:刪除 container
docker rmi:刪除 Docker Image

今天就來繼續介紹其它還沒有被使用到的指令:

Example 1:
如果要進入 container 看有哪些資料夾、檔案或是要修改檔案可以使用以下的指令:

$ docker exec -it nginx /bin/bash

nginx 為 Container Name,也可以使用 Container ID

進入 container 操作資料的方式有很多,但是 Docker 不建議直接使用 ssh 連到 Container 裡面去操作資料,主要是考量到安全性和每一個 container 都是一個process,所以不希望使用 ssh 直接進入 Container 裡面,應該要使用 Docker 提供的 docker exec 指令。

執行畫面如下
https://ithelp.ithome.com.tw/upload/images/20171215/20103456C8LNATGcEY.png

Example 2:
Docker Container 被 stop 停止時,可以使用 docker start 指令把 Container重新啟動起來,指令如下

$ docker start nginx

nginx 是 Container Name,也可以吏用 Container ID

執行畫面如下
https://ithelp.ithome.com.tw/upload/images/20171215/201034567avdFti1Cc.png

Example3:
前面有說到如果把 Docker 的 Container 刪除掉,之前寫入的資料就會不見,可以使用 docker export 指令,把 Docker Container 包含可讀可寫那一層也匯出成一個檔案,如下:
(1) 先進入 Container 裡,新增一個檔案

$ docker exec -it nginx /bin/bash
$ echo "HELLOWORLD" > hello.txt

畫面如下:
https://ithelp.ithome.com.tw/upload/images/20171215/20103456wckz0QYpn9.png

(2) 使用以下的指令把 Container Export 成檔案

$ docker export nginx > nginx.tar

畫面如下:
https://ithelp.ithome.com.tw/upload/images/20171215/20103456nwmFsBDllN.png

Example4:
把上個 sample 匯出的檔案,可以使用 import 匯入進 Docker,這時它就會是一個 Docker Image,如下:

$ cat nginx.tar | docker import - nginxbak

nginx.tar 是上個 sample 匯出的檔案,nginxbak 是 Import 進 Docker 取得 Image Name。

執行的畫面如下圖
https://ithelp.ithome.com.tw/upload/images/20171215/201034568BsPrREWGp.png

執行 container 並確認 hello.txt 的文字檔是存在的,畫面如下
https://ithelp.ithome.com.tw/upload/images/20171215/201034565e67a7ekj0.png

Example5:
停止 Container 的執行可以使用以下的指令:

$ docker stop nginx

nginx 為 Container Name,也可以直接使用 Container ID

昨天和今天已經介紹了在 Docker Container 常用到的指令,如果能熟練的使用這些指令對在使用 Docker 上會有幫助,也能對 Docker 的運作更加的了解。


上一篇
Day11:介紹執行 Docker Container 常用到的指令(一)
下一篇
Day13:如何使用 Docker Restful API
系列文
用30天來介紹和使用 Docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
chichi
iT邦新手 2 級 ‧ 2018-01-09 13:46:09

export 跟 save 出來的檔案會有差別嗎 ?

export 是把 Docker Container 存檔
save 是把 Docker Image 存檔

它們的檔案內容就是把 Docker Image 的檔案打包起來

chichi iT邦新手 2 級 ‧ 2018-01-09 16:52:29 檢舉

export 會把修改 Image 的內容都打包?
save 單純存放原始的 Image ?

對可以這樣說。

0

請問這裡參數「-it」的實際作用是?謝謝!

我要留言

立即登入留言