Docker
下面這張圖是 Docker VS VM ,plesas focus docker 的部分就好
Host Operating System 就是 server 上裝的OS,然後我們在上面裝一個應用程式 Docker ,Docker裡面會跑起來N個 Container , Container 裡面會有你寫的 service
下圖是描述 container 和 image 的關係,image 你可以把他當成還沒開始跑的 container
1. 下載 image
2. 把 image 跑起來 => container
3. 當然你可以對 container 給一些基本的操作 restart, stop ...
官網的 Command 文件
https://docs.docker.com/engine/reference/commandline/docker/
1. docker info
一些基本資訊
2. docker ps
列出現在有在跑的docker
IMAGE 指這個container 從哪個 image 來的
STATUS 現在狀態如何 (starting) (healthy)
NAMES, CONTAINER ID 這兩個欄位都代表這個 container ,指令中你可以用 ID 或 Name
PORTS 現在有兩組 port 要對應,一組是主機上的 port ,另一組是 container 上的 port ,在 run 起 container 的時候都要定義好 port 的 mapping
下圖 container 對應了三組 port
Host Container
0.0.0.0:7022 22
0.0.0.0:7070 80
0.0.0.0:7443 443
docker ps -a 列出所有 container,沒有加 -a 是不會列出現在是(Exited)關起來的container
3. docker run --name [container name] [image]
將 image 變成 container 的指令,container 不能重複,可以重複使用相同 image
4. docker start [container]
開啟 container 可以打 name 或 ID,ex: docker start gitlab 或 docker start 927138...
5. docker stop [container] or docker stop [container]
關閉 container
6. docker restart [container]
重啟 container ,每當改 config 之後都要重啟,但是重啟要很久,所以有替代方案 gitlab-ctl reconfigure 這個比較快
7. docker logs [container] -f
查詢 container log ,-f 會讓 log 一直刷新在你的 terminal 上,當你發現 container 一直處於 starting 的時候就近去看看吧,目前有遇過的問題像 host port 被占用就會一直卡在 starting
8. docker rm [container]
移除 container ,移掉之後就要重新 run 才會出現在列表中
https://ithelp.ithome.com.tw/users/20103456/ironman/1320
https://codingthesmartway.com/docker-beginners-guide-part-1-images-containers/